Quantcast
Channel: Apache Timeline
Viewing all articles
Browse latest Browse all 5648

Qpid C++ broker & JMS rollback not working properly

$
0
0
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

Viewing all articles
Browse latest Browse all 5648

Trending Articles