[ 
https://issues.apache.org/activemq/browse/CAMEL-3193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=62344#action_62344
 ] 

Christian Schneider commented on CAMEL-3193:
--------------------------------------------

I tested your patch yesterday and found we can solve this even much easier. The 
current code of TemporaryQueueReplyManager uses SimpleMessageListenerContainer. 
I just needed to switch to the DefaultMessageListenerContainer to achieve the 
same effect. I noticed this when I merged your patch with mine and tried to 
recreate the error. The problem did  not occur anymore even when I switched off 
your exceptionListener. 

So I looked into DefaultMessageListenerContainer and found that they support 
reconnections. They even do a fresh resolve of the temporary queue so it is 
recreated automatically. So I propose we simply go this way.

I just committed this change. Feel free to roll back if you see any problem 
with this aproach for the 2.5.0 release. I also committed the test but disabled 
it as it does not run unattended.

> request/reply over JMS using temporary queues - if connection lost the 
> temporary queue is not re-created which causes the producer to not work 
> anymore
> ------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-3193
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-3193
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-jms
>    Affects Versions: 2.4.0
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>             Fix For: 2.5.0
>
>         Attachments: CAMEL-3193.patch, ClientTest.java, patch.txt
>
>
> To recreate the problem you need a route with a jms inout endpoint that is 
> configured to use a temporary destination for replies. Till now I was only 
> able to show the problem with tibco ems.
> - Start broker
> - Start the jms consumer that replies to the request
> - Start the route 
> - Send a request/reoply exchange (should work)
> - Stop the broker
> - Wait long enough for the client to do a full reconnect (I used 
> connectionFactory.setReconnAttemptCount(1) on the client so I do not have to 
> wait so long)
> - Start the broker -> The jms component will do a full new connect
> - Send a request/reoply exchange -> Now a InvalidDestination Exception happens
> The client route will not work anymore until a restart as it creates the 
> temporary destination only once and it is invalid now.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to