我在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}' –