Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-4839

Ability to specify the cache level on JMS reply to queue

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.6.0
    • 2.9.1, 2.10.0
    • camel-jms
    • None
    • Websphere Application Server 7.0.0.15

    • Unknown

    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?

      Attachments

        Activity

          People

            njiang Willem Jiang
            dichotomy Mark
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: