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

camel-jms - Support transactional concurrent SimpleMessageListenerContainer

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Auto Closed
    • 2.22.1
    • Future
    • came-jms
    • None
    • Unknown

    Description

      I wish to use SimpleMessageListenerContainer in transacted mode with multiple consumers. 

      But org.apache.camel.component.jms.JmsEndpoint line 224 is giving the listenerContainer a custom TaskExecutor, causing SimpleMessageListenerContainer to fail if sessionTransacted=true and concurrentConsumers>1. The custom taskExecutor causes JMS session commit to be called by the wrong thread randomly and fails.

      Can we update JmsEndpoint to not set taskExecutor just for SimpleMessageListenerContainer? I've tested this by overriding the lib and it works well with sessionTransacted=true and concurrentConsumers>1 (Solace broker). SimpleMessageListenerContainer has many benefits like true event driven over the default polling listenerContainer. Will be great to get it properly supported.
       

      Attachments

        Activity

          People

            Unassigned Unassigned
            hopeng James Huang
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: