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

Reply via email to