Spring 按照常规模式丢弃MQ消息
我正在使用测试我的MQUE,每次发送消息时,丢失的三条MQ消息中有两条消息 我有以下配置:Spring 按照常规模式丢弃MQ消息,spring,message-queue,ibm-mq,spring-jms,Spring,Message Queue,Ibm Mq,Spring Jms,我正在使用测试我的MQUE,每次发送消息时,丢失的三条MQ消息中有两条消息 我有以下配置: <bean id="mqConnectionFactory" class="com.integrator.init.MqConnectionFactory" init-method="init" scope="singleton"> <property name="environnement" ref="env" /> <property name="
<bean id="mqConnectionFactory" class="com.integrator.init.MqConnectionFactory" init-method="init"
scope="singleton">
<property name="environnement" ref="env" />
<property name="destination" value=""/>
</bean>
<bean id="cachedConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="mqConnectionFactory" />
<property name="sessionCacheSize" value="3" />
</bean>
<bean id="listenerPitagorCPY" class="com.integrator.pitagor.cpy.messaging.listenerPitagorCPY">
<property name="pitagorCPYDelegate" ref="pitagorCPYDelegate"/>
</bean>
<bean id="pitagorCPYListener"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="autoStartup" value="false" />
<property name="connectionFactory" ref="cachedConnectionFactory" />
<property name="destination" ref="defaultDestination" />
<property name="messageListener" ref="listenerPitagorCPY" />
<property name="concurrentConsumers" value="4" />
</bean>
<bean id="defaultDestination" scope="singleton" class="com.ibm.mq.jms.MQQueue">
<constructor-arg value="#{mqConnectionFactory.destination}" />
</bean>
编辑:
规则模式是:“Nok,Nok,OK,Nok,Nok,OK,Nok,Nok,OK”
当我添加
时,模式变成“Nok,Nok,OK,OK,OK,Nok,Nok,OK,OK,OK,Nok,Nok,OK,OK”
你知道为什么会有这样的接收模式吗
谢谢很明显,有另一个客户端正在收听我的MQUE。是否有“AutoStart”为false的原因?你可以尝试使用“true”值吗?@kmansoor我必须将其设置为False,因为我手动启动和停止MQUE(从应用程序的IHM中)。。检查此项了解更多详细信息您能肯定地说队列中没有其他侦听器吗?是的,如果有其他侦听器,它就不会有这样一种受管制的消费模式。此外,正如我在问题的“编辑”部分所述,
concurrentConsumers
也会对这种模式产生影响,每次您发送一条消息,您会丢失另外两条消息吗?这些其他信息来自哪里?你能给我看一下放信息的代码和获取信息的代码吗?
public class listenerPitagorCPY implements MessageListener {
@Override
public void onMessage(Message message) {
// some work
}
}