我在TomEE容器内的Web应用程序中使用Spring JMS,并且想使用JMSXGroupIDs将我的消息分组在一起。我使用以下Spring JMS Listener容器配置。Spring JMS并发性和JMSXGroupID
<jms:listener-container container-type="default" connection-factory="jmsFactory" cache="none" acknowledge="auto" transaction-manager="transactionManager" concurrency="1-5" >
<jms:listener id="files-queue-listener" selector="mimetype ='application/xml'" destination="filesQueue" ref="filesQueueListener"/>
</jms:listener-container>
为了进行快速测试,我发送了1000封由同一个JMSXGroupID组合在一起的消息。我使用VisualVM查看了线程,我期望在整个测试过程中只能看到一个侦听器容器处于活动状态。发生的事情是,这个工作是在5个消息监听器容器之间分配的。我检查了ActiveMQ Web控制台,就代理而言,这些消息都发送给同一个用户。为什么消息将在不同的消息监听器容器线程上处理?是否有任何理由?
另请参阅我的编辑。 –
我试图将它改为5,问题仍然是一样的。 – Animal2
你确定你正确设置标题吗?它每次都适合我。查看调试器中的入站消息以确保头文件已设置。 'ActiveMQTextMessage {commandId = 15,... groupID = foo,... text = foo}' –