[ 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.