Hi sujin sr 1. Don't worry, Camel is automatically copying the headers for you.
Just send the message on to the replyQueue .from("activemq:queue:DataRequestQueue") .to("activemq:queue:DataReplyQueue") 2. Not sure if I understand you correct: you mean how can each sender (if there are multiple) consume only its own message replies? Use message selectors (https://activemq.apache.org/selectors.html). Each sender can for example set a header 'sender' with a unique ID. It can then use a message selector to listen to the DataReplyQueue, but consume only the messages with its own sender-ID. Cheers Stephan -----Ursprüngliche Nachricht----- Von: sujin sr <suji...@gmail.com> Gesendet: Mittwoch, 7. August 2019 09:37 An: users@camel.apache.org Betreff: Re: InOut exchange pattern on Transactional JMS endpoint not working Thanks Claus Ibsen for the response. So If I process replyQueue via a separate route I am wondering about the below two points 1. How I can transfer requestMessage headers values to the replyMessage headers. 2. I want to get the replyMessages only send from my producer alone, how to listen on specific correlation ids using camel approach. This use case will occur when the same request/reply queue can have other jms producers and consumers. Kindly suggest some ideas. On Wed, 7 Aug 2019 at 12:55, Claus Ibsen <claus.ib...@gmail.com> wrote: > 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/h > tml/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 >