Hi Jonathan, am I correct in thinking you are using recover() in a session which uses MessageListener asynchronous message receipt (rather than a synchronous consumer.receive() style)? From a quick look at the code it does seem like there is a bug there (using consumer.receive() should work with recover though).
I've raised an issue in JIRA : https://issues.apache.org/jira/browse/QPID-6141 and I've made a change to the trunk codebase which I believe will fix this problem. Apologies for the bug, Rob On 10 October 2014 12:35, jonathans2 <[email protected]> wrote: > Hi, I'm trying to use the JMS AMQP1.0 client with activemq. In my > application, I want to be able to effectively NACK a message in certain > error conditions, so it'll get redelivered. To do this, I'm creating a > session with Session.CLIENT_ACKNOWLEDGE, and in my listener calling > message.acknowledge() on success. On failure, I'm calling > session.recover(), > as my reading of the jms spec suggests this is the only way to ensure the > message gets redelivered, otherwise a subsequent call to > message.acknowledge > on a different message will implicitly acknowledge the previous message. > > However, after calling session.recover(), I stop seeing any messages on > that > queue at all. If I restart my application, then they all come through and > are processed. > > Am I doing something wrong? Is this a bug in the amqp-1-0-jms library? > Should I abandon my attempts to use that library and use proton-j directly > instead (despite a fairly terminal lack of documentation as far as I can > see). > > Any help/advice appreciated. > > Jonathan > > > > > -- > View this message in context: > http://qpid.2158936.n2.nabble.com/Problems-using-CLIENT-ACKNOWLEDGE-with-qpid-amqp-1-0-client-jms-0-28-and-ActiveMQ-tp7614874.html > Sent from the Apache Qpid users mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
