We had a rather unique situation some time ago where our message broker log was 
recording the JMSException for an Invalid acknowledgement.

We traced it to the fact that the consumer of the message was using a more 
recent version of ActiveMQ than our message broker was running (i.e. message 
broker was v5.5.1 and the consumer was >v5.5.1).

We would like to recreate this error in one of our test environments so that we 
can learn more about it.

It appears that the exception was related to a consumer acknowledging a 
message.  We determined this from observing that the specific exception that 
was thrown appears to originate in only one place, that is the acknowledge() 
function of the TopicSubscription class.

I have configured an environment with a v5.5.1 message broker and a consumer 
and producer compiled with v5.11.0 of ActiveMQ.  The producer sends messages to 
a topic and the consumer receives these messages and then acknowledges those 
messages.  The session was configured for client acknowledgement.  Under these 
conditions I could not reproduce the exception described above.

I tried looking through the source code for the acknowledge() function of the 
ActiveMQMessage class to see if I could determine how my consumer call to 
acknowkedge() landed on the TopicSubscription acknowledge(), but have been 
unable to make a connection between the acknowledge() function in 
ActiveMQMessage and TopicSubscription even after following the calls starting 
with the call to ActiveMQMessage acknowledge().

Can you offer any explanation as to why I am unable to trace the functions 
calls to TopicSubscription acknowledge?  And more importantly, can you offer 
any advice on how I might recreate the exception condition described here?

Thanks,
Mike

Michael Tarullo
Contractor (Engility Corp)
Software Engineer
FAA WJH Technical Center
(609)485-5294

Reply via email to