Details
Description
I'm trying to use Camel (v 2.6.0) JMS Request/Reply with Websphere 7 using Websphere MQ. I'm successfully able to put the request message onto the queue using the following URI:
jms:queue:inboundQueue?connectionFactory=#connectionFactory&taskExecutor=#taskExecutor&transactionManager=#transactionManager&cacheLevelName=CACHE_NONE&replyTo=outboundQueue&requestTimeout=120000
Note: I have to use cacheLevelName=CACHE_NONE in order for this to work on Websphere.
However, when Camel creates the PersistentQueueMessageListenerContainer to read the reply message, it is hard coding the cache level to CACHE_SESSION (see PersistentQueueReplyManager.java line 192). What happens is that Camel is successfully able to read the reply off the queue, but then spits out the following error repeatedly:
23 Dec 2011 09:23:32,427|||WorkManager.DefaultWorkManager : 3||WARN |org.springframework.jms.listener.DefaultMessageListenerContainer|Setup of JMS message listener invoker failed for destination 'outboundQueue' - trying to recover. Cause: Connection closed
I believe this is due to the PersistentQueueMessageListenerContainer using a cache level of CACHE_SESSION instead of CACHE_NONE.
Can Camel be enhanced to have the ability to set the cache level on the reply queue?