我使用HemrèsJMS来测试我的MQueue,每次发送消息时,我都正好有三分之二的MQ消息丢失。
我有以下配置:
<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>
每三个发送的消息恰好触发以下侦听器:
public class listenerPitagorCPY implements MessageListener {
@Override
public void onMessage(Message message) {
// some work
}
}
修改:
常规模式是:&#34; Nok,Nok,确定,Nok,Nok,确定,Nok,Nok,确定< /强> &#34; ......
当我添加<property name="concurrentConsumers" value="3" />
时,模式变为&#34; Nok,Nok, OK,OK,OK ,Nok,Nok, OK,OK,好的,Nok,Nok,好的,好的,好的 &#34; ......
任何想法&#34;为什么&#34;这种接待模式存在吗?
由于
答案 0 :(得分:0)
看起来很明显,有另一个客户端正在监听我的MQueue。