lroloson wrote:
Carl,
I tried you experiment this AM, and basically - if I unplug the cable on the
linux end, and kill the listener on the other end (today I was using a linux
listener on a separate machine), it works fine. When I plug the cable back
in (a couple minutes later) & restart the listener, all the messages come in
order.
I repeated the same test without restarting the listener - I let it get in a
loop where it tries to reconnect when the connection is broken. The
connection is reestablished shortly after I plug the cable back in, and the
messages are received out of order (same as before). Additionally - some of
the messages do not get sent, I have to restart the client to get the
missing messages ... they are all delivered, but it takes a reconnect and a
restart to get them.
Looking at the '.reconnect' logs, the broker shows that messages 1 - 54
were sent out on one connection of which the first 10 were acked; then
55 - 200 were sent out on another connection; then 11 - 54 were sent on
a third connection.
The broker logs the disconnection of the second of these connections
just before the disconnection of the first connection which explains why
messages 11-54 were not delivered to it - they were still 'locked' by
the first connection. A third connection is then opened and it receives
those messages, now requeued.
If you are able, I'd suggest trying the broker from trunk. The broker
code has been modified since 0.5 such that it will detect the loss of
the connection based on lack of heartbeats in the same way the client
does and release the unacked messages.
With 0.5, if your client requests an exclusive subscription, then
instead of getting messages delivered out of order in this case, you
would get an error trying to resubscribe. That may (or may not!) be
useful to you.
I have copies of my clients log, showing the messages with time stamps and
sequence numbers, I also have copies of the qpidd.log (I started a new one
prior to each test). There are 4 logs in a file located here
http://files.me.com/lroloson/mkkv3w (that link should point to a file called
BrokerOrder.tgz). Please let me know if you have problems getting the logs.
thanks - Larry
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscr...@qpid.apache.org