多个Spring集成任务执行器从JMS队列中拾取相同的消息

多个Spring集成任务执行器从JMS队列中拾取相同的消息,spring,spring-integration,activemq,ibm-mq,spring-jms,Spring,Spring Integration,Activemq,Ibm Mq,Spring Jms,我使用spring集成来处理队列中的多个文件 以下是我的配置: <si-jms:message-driven-channel-adapter id="someRegionalInboundAdapter" channel="TP_SomeLogBinaryChannel_AUDIT" container="someContainer" header-mapper="parentLogHeaderMapper" auto-startup="true" /> <b

我使用spring集成来处理队列中的多个文件

以下是我的配置:

<si-jms:message-driven-channel-adapter
    id="someRegionalInboundAdapter" channel="TP_SomeLogBinaryChannel_AUDIT"
    container="someContainer" header-mapper="parentLogHeaderMapper" auto-startup="true"  />
<bean id="someContainer"
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="concurrentConsumers" value="10" />
    <property name="maxConcurrentConsumers" value="20" />
    <property name="connectionFactory" ref="cachingGlobalConnectionFactory" />
    <property name="destination" ref="someQ" />
    <property name="taskExecutor" ref="taskExecutor" />
    <property name="transactionManager" ref="transactionManager" />
    <property name="autoStartup" value="false" />
    <property name="errorHandler" ref="exceptionLogger"/>
</bean>
<task:executor id="taskExecutor" pool-size="20" queue-capacity="20" />  

我的问题是:多个任务执行者正在从MQ接收相同的消息

我希望并行执行,但不同的线程不应该从MQ获取相同的消息。 我的配置有问题吗?我如何解决这个问题

我的MQ配置

<!-- MQ Configuratipn -->
<Resource auth="Container" brokerName="localhost" brokerURL="tcp://localhost:61616" description="JMS Connection Factory" factory="org.apache.activemq.jndi.JNDIReferenceFactory" name="jms/QM_NH_DV0_0" type="org.apache.activemq.ActiveMQConnectionFactory"/>
    <Resource auth="Container" description="JMS queue" factory="org.apache.activemq.jndi.JNDIReferenceFactory" name="jms/Q_INTG_AUDT_PRCS" physicalName="Q_INTG_AUDT_PRCS" type="org.apache.activemq.command.ActiveMQQueue"/>
    <Resource auth="Container" description="JMS queue" factory="org.apache.activemq.jndi.JNDIReferenceFactory" name="jms/Q_ERRR_PRCS" physicalName="Q_ERRR_PRCS" type="org.apache.activemq.command.ActiveMQQueue"/>


您是从队列中还是从主题中选取文件?您将在主题中看到这一点。我正在从队列中挑选
DefaultMessageListenerContainer
看起来不错。其他地方可能有问题。共享频道详细信息。从my server.xml编辑MQ配置详细信息。这个问题只发生在高负载条件下。您是否真的通过
org.springframework.integration.jms.ChannelPublishingJmsMessageListener
类别的
DEBUG
确认它们是相同的消息?将会有一个类似于
转换的JMS消息的日志。。。到集成消息有效负载
?还有,为什么您认为问题确实在
级别,而不是流的下游?