[ 
https://issues.apache.org/jira/browse/CAMEL-12876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Huang updated CAMEL-12876:
--------------------------------
    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.
 

  was:
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. 
SimpleMessageListenerContainer has many benefits like true event driven over 
the default polling listenerContainer. Will be great to get it properly 
supported.
 


> Support transactional concurrent SimpleMessageListenerContainer
> ---------------------------------------------------------------
>
>                 Key: CAMEL-12876
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12876
>             Project: Camel
>          Issue Type: Improvement
>          Components: came-jms
>    Affects Versions: 2.22.1
>            Reporter: James Huang
>            Priority: Major
>
> 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.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to