Paul: Thank you for your response. Please see my comments inline below...
> To: users@camel.apache.org > Date: Tue, 29 Mar 2011 04:35:51 -0700 > Subject: Re: InOut over JMS always leads to Timout (ExchangeTimedOutException) > > Mike, > > I can't see your original description of the problem in this thread, so > maybe I'm regurgitating old and obvious advice, but... I hope you can view the original description of the problem as well as the entire thread here: http://camel.465427.n5.nabble.com/InOut-over-JMS-always-leads-to-Timout-ExchangeTimedOutException-td4237336.html > > Are both test classes using JMS endpoints inside a Camel route? And do > they both have the necessary JMS/ActiveMQ configuration in Spring XML? My original example/test Spring files did not have a route for the publisher. I added this route: <route> <from uri="vm:Hello.InOut"/> <inOut uri="activemq:Hello.InOut?exchangePattern=InOut"/> </route> to the publisher, but that didn't change anything. Approx. 30% of the messages timeout. > > Have you turned on debug logging? This should show whether your JMS > producer is actually failing to connect, or failing to receive the > response. > > If it's failing to connect, do the logs indicate what specific call > failed? Maybe your broker is unavailable, or maybe it cannot create the > queue in question, or maybe your JNDI server cannot resolve it; etc... > you get the idea. All good thoughts! I did some more testing and have narrowed down (hopefully) what is going on. The publisher sends all messages successfully. Approximately 30% of the messages timeout (i.e. the response is not received). When a response is not received (in a timely fashion) then ActiveMQ removes the message from the original queue and delivers it to the DLQ. Attachment #1 (ActiveMQ_DLQ_Msg.png) shows a sample of such a message. I have also attached the debug log from the consumer; with the hope that it will help. In summary, I believe the consumer is failing to consume the message. When the timeout occurs in the publisher, then he stops listening on the temp-queue and ActiveMQ then moves the original message to the DLQ. (Alternatively, the message is published with a TTL and ActiveMQ moves the original message to the DLQ after the message/TTL has expired. I'm unsure of the inner workings of AMQ.) > > If it's timing out while waiting for a response, then check the > JMSReplyTo header; is your consumer actually delivering the response > here? > > Regards, > Paul > > > On Mon, 2011-03-28 at 23:39 -0700, Claus Ibsen wrote: > > Hi > > > > See this FAQ > > http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html > > > > And change your logic to set the answer on the IN thats just much > > easier, in the HelloProcessor. > > > > I tried this - it seemed to make the problem much worse. Thank you both for your responses. Any further thoughts/advice would be greatly appreciated! TIA, Mike L. (aka patzerbud)
CamelDebugLog.txt.gz
Description: GNU Zip compressed data