qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aleš Trček <Ales.Tr...@halcom.si>
Subject Qpid C++ broker & JMS rollback not working properly
Date Mon, 19 Aug 2013 22:28:45 GMT
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

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