qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tony Ercolano <toerc...@microsoft.com>
Subject non-blocking mode in proton-c
Date Wed, 04 Feb 2015 01:58:28 GMT
I'm new to proton-c, and I'm having a bit of trouble with using a messenger that has been set
to non-blocking.

The following code (adjusted slightly to remove password info) attempts to send 10 messages
non-blocking.
It appears that if I want to PUSH all the messages out on the wire I have to make an indeterminate
number
of pn_messenger_send calls.

That is, the loop at the bottom that tests the status via a tracker will never complete unless
I keep invoking
pn_messenger_send after sweeping through the array of trackers.  As this seems odd, my only
thought is
that I'm doing it wrong.

I've also included a trace done with PN_TRACE_FRM=1.

Any thoughts would be appreciated.

Thank you,
Tony

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 */
#include "proton/message.h"
#include "proton/messenger.h"
#include "pncompat/misc_funcs.inc"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <Windows.h>
#define check(messenger)                                                     \
                                                                                         
                                                                                         
                                                                            {            
                                                             \
    if(pn_messenger_errno(messenger))                                        \
                                {                                                        
               \
      die(__FILE__, __LINE__, pn_error_text(pn_messenger_error(messenger))); \
                                }                                                        
               \
                                                                                         
                                                                                         
                                                                            }            
                                                             \
void die(const char *file, int line, const char *message)
{
    fprintf(stderr, "%s:%i: %s\n", file, line, message);
    exit(1);
}
void usage(void)
{
    printf("Usage: send [-a addr] [message]\n");
    printf("-a     \tThe target address [amqp[s]://domain[/name]]\n");
    printf("message\tA text string to send.\n");
    exit(0);
}
const char* message_tracker_status(pn_status_t stat)
{
    switch (stat)
    {
        case PN_STATUS_UNKNOWN:
            return "PN_STATUS_UNKNOWN";
        case PN_STATUS_PENDING:
            return "PN_STATUS_PENDING";
        case PN_STATUS_ACCEPTED:
            return "PN_STATUS_ACCEPTED";
        case PN_STATUS_REJECTED:
            return "PN_STATUS_REJECTED";
        case PN_STATUS_RELEASED:
            return "PN_STATUS_RELEASED";
        case PN_STATUS_MODIFIED:
            return "PN_STATUS_MODIFIED";
        case PN_STATUS_ABORTED:
            return "PN_STATUS_ABORTED";
        case PN_STATUS_SETTLED:
            return "PN_STATUS_SETTLED";
        default:
            break;
    }
    return "BIZZARO STATUS";
}
#define ACTUAL_MESSAGES_TO_SEND (10)
#define OUTGOING_WINDOW_SIZE (10)
int main(int argc, char** argv)
{
    // Setup connection
    char  address[] = "amqps://RootManageSharedAccessKey:xxxxxxxxxx=@toercola-ns.servicebus.windows.net/toercola";
    char messageBodies[ACTUAL_MESSAGES_TO_SEND][50];
    pn_message_t * message[ACTUAL_MESSAGES_TO_SEND];
    pn_messenger_t * messenger;
    pn_tracker_t tracker[ACTUAL_MESSAGES_TO_SEND];
    pn_data_t * body;
    int result;
    size_t i;
    // Build up proton messages
    for (i = 0; i < ACTUAL_MESSAGES_TO_SEND; i++)
    {
        message[i] = pn_message();
        if (message[i] == NULL)
        {
            printf("Could not allocate message: %d\r\n", i);
        }
        else
        {
            if ((result = pn_message_set_address(message[i], address)) != 0)
            {
                printf("Could not set message address: %d\r\n", result);
            }
            else
            {
                body = pn_message_body(message[i]);
                sprintf(&messageBodies[i][0], "Glorious exhausted warriors %d!!", i);
                pn_data_put_string(body, pn_bytes(strlen(&messageBodies[i][0]), &messageBodies[i][0]));
            }
        }
    }
    // Create proton messenger and setup: Non-Blocking, Outgoing window size
    messenger = pn_messenger("NOT BLOCKING MESSENGER");
    if ((result = pn_messenger_set_blocking(messenger, false)) != 0)
    {
        printf("pn_messenger_set_blocking result: %d\r\n", result);
        check(messenger);
    }
    if ((result = pn_messenger_set_outgoing_window(messenger, OUTGOING_WINDOW_SIZE)) != 0)
    {
        printf("pn_messenger_set_outgoing_window result: %d\r\n", result);
        check(messenger);
    }
    // Load up messages into messenger queue
    for (i = 0; i < ACTUAL_MESSAGES_TO_SEND; i++)
    {
        if ((result = pn_messenger_put(messenger, message[i])) != 0)
        {
            printf("Couldn't do the put for message %d, result: %d\r\n", i, result);
        }
        else
        {
            check(messenger);
            //Create a tracker for each message
            tracker[i] = pn_messenger_outgoing_tracker(messenger);
        }
    }
    int j = 0;
    // Monitor status of messages via trackers
    while (1)
    {
        size_t outstandingSends = ACTUAL_MESSAGES_TO_SEND;
        for (i = 0; i < ACTUAL_MESSAGES_TO_SEND; i++)
        {
            pn_state_t currentMessageStatus = pn_messenger_status(messenger, tracker[i]);
            printf("%d pass - The actual status of message %d is %s\r\n", j, i, message_tracker_status(currentMessageStatus));
            if (currentMessageStatus != PN_STATUS_PENDING)
            {
                outstandingSends--;
            }
        }
        j++;
        if (outstandingSends)
        {
            pn_messenger_send(messenger,outstandingSends);
            Sleep(100);
        }
        else
        {
            for (i = 0; i < ACTUAL_MESSAGES_TO_SEND; i++)
            {
                // Remove trackers for messages that are no longer pending
                result = pn_messenger_settle(messenger, tracker[i],0);
                if (result != 0)
                {
                    printf("error on settling tracker %d\r\n",i);
                }
            }
            break;
        }
    }
    // Cleanup code:
    // Stop messenger
    if (pn_messenger_stop(messenger) == PN_INPROGRESS)
    {
        j = 0;
        while (pn_messenger_stopped(messenger) == false)
        {
            printf("not stopped messenger after: %d\r\n", j);
            j++;
            Sleep(100);
            // For some "bizzar" reason if the messenger is INPROGRESS, need to keep trying
to stop it (hitting it over the head with a hammer:)
            pn_messenger_stop(messenger);
        }
    }
    // Free messenger
    pn_messenger_free(messenger);
    for (i = 0; i < ACTUAL_MESSAGES_TO_SEND; i++)
    {
        // Free messages
        pn_message_free(message[i]);
    }
    printf("hit enter to exit:");
    getchar();
    return 0;
}

The trace follows:
0 pass - The actual status of message 0 is PN_STATUS_PENDING
0 pass - The actual status of message 1 is PN_STATUS_PENDING
0 pass - The actual status of message 2 is PN_STATUS_PENDING
0 pass - The actual status of message 3 is PN_STATUS_PENDING
0 pass - The actual status of message 4 is PN_STATUS_PENDING
0 pass - The actual status of message 5 is PN_STATUS_PENDING
0 pass - The actual status of message 6 is PN_STATUS_PENDING
0 pass - The actual status of message 7 is PN_STATUS_PENDING
0 pass - The actual status of message 8 is PN_STATUS_PENDING
0 pass - The actual status of message 9 is PN_STATUS_PENDING
1 pass - The actual status of message 0 is PN_STATUS_PENDING
1 pass - The actual status of message 1 is PN_STATUS_PENDING
1 pass - The actual status of message 2 is PN_STATUS_PENDING
1 pass - The actual status of message 3 is PN_STATUS_PENDING
1 pass - The actual status of message 4 is PN_STATUS_PENDING
1 pass - The actual status of message 5 is PN_STATUS_PENDING
1 pass - The actual status of message 6 is PN_STATUS_PENDING
1 pass - The actual status of message 7 is PN_STATUS_PENDING
1 pass - The actual status of message 8 is PN_STATUS_PENDING
1 pass - The actual status of message 9 is PN_STATUS_PENDING
2 pass - The actual status of message 0 is PN_STATUS_PENDING
2 pass - The actual status of message 1 is PN_STATUS_PENDING
2 pass - The actual status of message 2 is PN_STATUS_PENDING
2 pass - The actual status of message 3 is PN_STATUS_PENDING
2 pass - The actual status of message 4 is PN_STATUS_PENDING
2 pass - The actual status of message 5 is PN_STATUS_PENDING
2 pass - The actual status of message 6 is PN_STATUS_PENDING
2 pass - The actual status of message 7 is PN_STATUS_PENDING
2 pass - The actual status of message 8 is PN_STATUS_PENDING
2 pass - The actual status of message 9 is PN_STATUS_PENDING
3 pass - The actual status of message 0 is PN_STATUS_PENDING
3 pass - The actual status of message 1 is PN_STATUS_PENDING
3 pass - The actual status of message 2 is PN_STATUS_PENDING
3 pass - The actual status of message 3 is PN_STATUS_PENDING
3 pass - The actual status of message 4 is PN_STATUS_PENDING
3 pass - The actual status of message 5 is PN_STATUS_PENDING
3 pass - The actual status of message 6 is PN_STATUS_PENDING
3 pass - The actual status of message 7 is PN_STATUS_PENDING
3 pass - The actual status of message 8 is PN_STATUS_PENDING
3 pass - The actual status of message 9 is PN_STATUS_PENDING
[00929FA0]:  -> SASL
[00929FA0]:0 -> @sasl-init(65) [mechanism=:PLAIN, initial-response=b"\x00RootManageSharedAccessKey\x0xxxxxxxxxxxxxx="]
4 pass - The actual status of message 0 is PN_STATUS_PENDING
4 pass - The actual status of message 1 is PN_STATUS_PENDING
4 pass - The actual status of message 2 is PN_STATUS_PENDING
4 pass - The actual status of message 3 is PN_STATUS_PENDING
4 pass - The actual status of message 4 is PN_STATUS_PENDING
4 pass - The actual status of message 5 is PN_STATUS_PENDING
4 pass - The actual status of message 6 is PN_STATUS_PENDING
4 pass - The actual status of message 7 is PN_STATUS_PENDING
4 pass - The actual status of message 8 is PN_STATUS_PENDING
4 pass - The actual status of message 9 is PN_STATUS_PENDING
[00929FA0]:  <- SASL
[00929FA0]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=@PN_SYMBOL[:PLAIN, :EXTERNAL]]
5 pass - The actual status of message 0 is PN_STATUS_PENDING
5 pass - The actual status of message 1 is PN_STATUS_PENDING
5 pass - The actual status of message 2 is PN_STATUS_PENDING
5 pass - The actual status of message 3 is PN_STATUS_PENDING
5 pass - The actual status of message 4 is PN_STATUS_PENDING
5 pass - The actual status of message 5 is PN_STATUS_PENDING
5 pass - The actual status of message 6 is PN_STATUS_PENDING
5 pass - The actual status of message 7 is PN_STATUS_PENDING
5 pass - The actual status of message 8 is PN_STATUS_PENDING
5 pass - The actual status of message 9 is PN_STATUS_PENDING
[00929FA0]:0 <- @sasl-outcome(68) [code=0, additional-data=b"Welcome!"]
[00929FA0]:  -> AMQP
[00929FA0]:0 -> @open(16) [container-id="NOT BLOCKING MESSENGER", hostname="toercola-ns.servicebus.windows.net"]
[00929FA0]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=10]
[00929FA0]:0 -> @attach(18) [name="sender-xxx", handle=0, role=false, snd-settle-mode=1,
rcv-settle-mode=0, source=@source(40) [address="toercola", durable=0, timeout=0, dynamic=fa
lse], target=@target(41) [address="toercola", durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
6 pass - The actual status of message 0 is PN_STATUS_PENDING
6 pass - The actual status of message 1 is PN_STATUS_PENDING
6 pass - The actual status of message 2 is PN_STATUS_PENDING
6 pass - The actual status of message 3 is PN_STATUS_PENDING
6 pass - The actual status of message 4 is PN_STATUS_PENDING
6 pass - The actual status of message 5 is PN_STATUS_PENDING
6 pass - The actual status of message 6 is PN_STATUS_PENDING
6 pass - The actual status of message 7 is PN_STATUS_PENDING
6 pass - The actual status of message 8 is PN_STATUS_PENDING
6 pass - The actual status of message 9 is PN_STATUS_PENDING
[00929FA0]:  <- AMQP
[00929FA0]:0 <- @open(16) [container-id="5c816d4ad3a342fbb1fe27f80b7eeb10_G39", max-frame-size=65536,
channel-max=4999, idle-time-out=240000]
[00929FA0]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=1, incoming-window=10, outgoing-window=5000,
handle-max=255]
[00929FA0]:0 <- @attach(18) [name="sender-xxx", handle=0, role=true, snd-settle-mode=1,
rcv-settle-mode=0, source=@source(40) [address="toercola", durable=0, timeout=0, dynamic=fal
se], target=@target(41) [address="toercola", durable=0, timeout=0, dynamic=false], max-message-size=262144,
properties={:"com.microsoft:tracking-id"="5c816d4ad3a342fbb1fe27f80b7eeb
10_G39"}]
[00929FA0]:0 <- @flow(19) [next-incoming-id=0, incoming-window=10, next-outgoing-id=1,
outgoing-window=5000, handle=0, delivery-count=0, link-credit=300, available=0, echo=false]
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=0, delivery-tag=b"\x00\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 0!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=1, delivery-tag=b"\x01\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 1!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=2, delivery-tag=b"\x02\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 2!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=3, delivery-tag=b"\x03\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 3!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=4, delivery-tag=b"\x04\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 4!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=5, delivery-tag=b"\x05\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 5!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=6, delivery-tag=b"\x06\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 6!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=7, delivery-tag=b"\x07\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 7!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=8, delivery-tag=b"\x08\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 8!!"
[00929FA0]:0 -> @transfer(20) [handle=0, delivery-id=9, delivery-tag=b"\x09\x00\x00\x00\x00\x00\x00\x00",
message-format=0, settled=false, more=false] (149) "\x00Sp\xd0\x00\x00\x00
\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00V\x00\x00\x00\x0d@@\xa13amqps://toercola-ns.servicebus.windows.net/toercola@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x1fGlorious exhausted warriors 9!!"
7 pass - The actual status of message 0 is PN_STATUS_PENDING
7 pass - The actual status of message 1 is PN_STATUS_PENDING
7 pass - The actual status of message 2 is PN_STATUS_PENDING
7 pass - The actual status of message 3 is PN_STATUS_PENDING
7 pass - The actual status of message 4 is PN_STATUS_PENDING
7 pass - The actual status of message 5 is PN_STATUS_PENDING
7 pass - The actual status of message 6 is PN_STATUS_PENDING
7 pass - The actual status of message 7 is PN_STATUS_PENDING
7 pass - The actual status of message 8 is PN_STATUS_PENDING
7 pass - The actual status of message 9 is PN_STATUS_PENDING
8 pass - The actual status of message 0 is PN_STATUS_PENDING
8 pass - The actual status of message 1 is PN_STATUS_PENDING
8 pass - The actual status of message 2 is PN_STATUS_PENDING
8 pass - The actual status of message 3 is PN_STATUS_PENDING
8 pass - The actual status of message 4 is PN_STATUS_PENDING
8 pass - The actual status of message 5 is PN_STATUS_PENDING
8 pass - The actual status of message 6 is PN_STATUS_PENDING
8 pass - The actual status of message 7 is PN_STATUS_PENDING
8 pass - The actual status of message 8 is PN_STATUS_PENDING
8 pass - The actual status of message 9 is PN_STATUS_PENDING
[00929FA0]:0 <- @disposition(21) [role=true, first=0, settled=true, state=@accepted(36)
[]]
[00929FA0]:0 <- @disposition(21) [role=true, first=1, settled=true, state=@accepted(36)
[]]
9 pass - The actual status of message 0 is PN_STATUS_ACCEPTED
9 pass - The actual status of message 1 is PN_STATUS_ACCEPTED
9 pass - The actual status of message 2 is PN_STATUS_PENDING
9 pass - The actual status of message 3 is PN_STATUS_PENDING
9 pass - The actual status of message 4 is PN_STATUS_PENDING
9 pass - The actual status of message 5 is PN_STATUS_PENDING
9 pass - The actual status of message 6 is PN_STATUS_PENDING
9 pass - The actual status of message 7 is PN_STATUS_PENDING
9 pass - The actual status of message 8 is PN_STATUS_PENDING
9 pass - The actual status of message 9 is PN_STATUS_PENDING
[00929FA0]:0 <- @disposition(21) [role=true, first=4, settled=true, state=@accepted(36)
[]]
[00929FA0]:0 <- @disposition(21) [role=true, first=2, settled=true, state=@accepted(36)
[]]
[00929FA0]:0 <- @disposition(21) [role=true, first=3, settled=true, state=@accepted(36)
[]]
10 pass - The actual status of message 0 is PN_STATUS_ACCEPTED
10 pass - The actual status of message 1 is PN_STATUS_ACCEPTED
10 pass - The actual status of message 2 is PN_STATUS_ACCEPTED
10 pass - The actual status of message 3 is PN_STATUS_ACCEPTED
10 pass - The actual status of message 4 is PN_STATUS_ACCEPTED
10 pass - The actual status of message 5 is PN_STATUS_PENDING
10 pass - The actual status of message 6 is PN_STATUS_PENDING
10 pass - The actual status of message 7 is PN_STATUS_PENDING
10 pass - The actual status of message 8 is PN_STATUS_PENDING
10 pass - The actual status of message 9 is PN_STATUS_PENDING
[00929FA0]:0 <- @disposition(21) [role=true, first=6, settled=true, state=@accepted(36)
[]]
[00929FA0]:0 <- @flow(19) [next-incoming-id=10, incoming-window=6, next-outgoing-id=1,
outgoing-window=5000]
[00929FA0]:0 <- @disposition(21) [role=true, first=5, settled=true, state=@accepted(36)
[]]
[00929FA0]:0 <- @disposition(21) [role=true, first=7, settled=true, state=@accepted(36)
[]]
11 pass - The actual status of message 0 is PN_STATUS_ACCEPTED
11 pass - The actual status of message 1 is PN_STATUS_ACCEPTED
11 pass - The actual status of message 2 is PN_STATUS_ACCEPTED
11 pass - The actual status of message 3 is PN_STATUS_ACCEPTED
11 pass - The actual status of message 4 is PN_STATUS_ACCEPTED
11 pass - The actual status of message 5 is PN_STATUS_ACCEPTED
11 pass - The actual status of message 6 is PN_STATUS_ACCEPTED
11 pass - The actual status of message 7 is PN_STATUS_ACCEPTED
11 pass - The actual status of message 8 is PN_STATUS_PENDING
11 pass - The actual status of message 9 is PN_STATUS_PENDING
[00929FA0]:0 <- @disposition(21) [role=true, first=9, settled=true, state=@accepted(36)
[]]
[00929FA0]:0 <- @disposition(21) [role=true, first=8, settled=true, state=@accepted(36)
[]]
12 pass - The actual status of message 0 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 1 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 2 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 3 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 4 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 5 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 6 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 7 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 8 is PN_STATUS_ACCEPTED
12 pass - The actual status of message 9 is PN_STATUS_ACCEPTED
[00929FA0]:0 -> @detach(22) [handle=0, closed=true]
[00929FA0]:0 -> @close(24) []
not stopped messenger after: 0
[00929FA0]:0 <- @detach(22) [handle=0, closed=true]
[00929FA0]:0 <- @close(24) []
[00929FA0]:  <- EOS
[00929FA0]:  -> EOS
[00929FA0]:  -> EOS
[00929FA0]:  -> EOS
[00929FA0]:  -> EOS
hit enter to exit:

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message