Hi all,

I have a rather nasty problem I can't seem to be able to solve, using the 
following setup:
-qpidc-0.22 broker
-qpid JMS client (different versions tried)

I create a transacted session and consume messages from the queue. When I call 
commit(), the message on the broker gets commited all right. When I call 
rollback(), the message is not taken from the queue, but it isn't rolled back 
properly, since the same consumer (within the same session) gets the *next* 
message when calling receive(), instead of the *same one* (maxprefetch=1). The 
'skipped' messages then stay in the queue and can never be retreived again, 
until the session & connection are reset. I used a simple (15 line) test 
program with only 1 input queue to eliminate all other possible reasons. The 
session is created like this:
Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
which should be correct. I'm sure the messages are not the same, since I'm 
checking id with getJMSMessageID().

This used to work OK before I started working with qpid 0.22 on a new server, 
so I tried the same sample program on the old dev machine with qpidc-0.18, and 
sure enough, it works as expected there (taking the same message over and over 
again, until commited). Differences between the brokers are:
working:             qpidc-0.18; CentOS 6.3
not working:     qpidc-0.22; RHEL 6.3
As mentioned, the client program is the same, only the URL of the broker and 
queue name are different for these cases. Queues are created with options:
qpid-config add queue q1 --durable --argument=qpid.priorities=10. The broker is 
started with minimal configuration (qpidd --daemon --auth no) in both cases.

Is there something broken/changed in qpidc 0.22 or am I missing something?


Regards,
Ales

Reply via email to