Hi You cannot do request/reply via reply queues with InOut and with transactions as its a chicken/egg situation. The message that is sent to the request queue (for req/reply) is not committed until the transaction is committed and therefore the received cannot "see" the message.
On Wed, Aug 7, 2019 at 9:05 AM sujin sr <suji...@gmail.com> wrote: > > Hi, > > I have a use case where two jms queues are available those are > DataRequestQueue and DataReplyQueue. Where If I sent a message to the > DataRequestQueue MDB will process the message and send the response to > DataReplyQueue. > > I have used Camel to send the message and receive the response. I have used > InOut Exchange pattern in camel to send and receive the response back. > > Jms endpoint I am using is Transactional JMS endpoint, transaction manager > configured in spring bean. > > .to("jms:queue:DataRequestQueue?replyTo=DataReplyQueue&exchangePattern=InOut&requestTimeout=60s") > > > When I try to send the message to the request queue using InOut exchange > camel throw ExchangeTimedOutException, but if I remove transaction manager > from the spring bean it working fine I able to get the response in the > reply queue. > I have also tried to create a separate jms component bean without > transaction manager for InOut exchange alone but it was also not working. > > Kindly suggest some idea to make the camel route work fine. > > https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.3/html/transaction_guide/fmrtxnjmssynchronous > > > This article suggested to use a separate queue for request and response, > but I cannot split the route and make the route async. > > Thanks. -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2