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