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