On 10/31/2009 01:26 PM, lroloson wrote:
I ran short test today with the broker log set to debug+, I queued 10 messages in direct persistent queue (the aet_q) and used the windows client to get them. Same results as before, messages were delivered - but qpid-tool still shows them in the queue. I shutdown the broker and saved the log as qpidd.log.windows. I restarted the broker, and a the linux client, got the 10 messages and verified they were dequeued using the qpid-tool. I saved the broker log again as qpidd.log.linux. The two log files are in a single tar file here; http://files.me.com/lroloson/q1gkvs The code that I am running is essentially the direct listener code, with the IP and the queue name changed. Compiles in both windows and linux. But only the linux client appears to be working as expected.
The windows client is sending a TxSelect, making the session transactional. Thus any accepts will not actually dequeue until the transaction is committed. As the session is ended without a commit, the transaction including all the accepts, is rolled back and the messages are never dequeued.
Do you have an explicit call to txSelect() on the session for the windows case? I can't think how else that could get sent.
--------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
