【问题标题】:MQ messages discarded following a regular pattern按照常规模式丢弃的 MQ 消息
【发布时间】:2017-09-01 14:10:11
【问题描述】:

我正在使用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
  }
}

编辑:

常规模式是:"Nok, Nok, OK, Nok, Nok, OK, Nok, Nok, OK " ...

当我添加&lt;property name="concurrentConsumers" value="3" /&gt;时,模式变为“Nok,Nok,OK,OK,OK,Nok,Nok,OK,OK,OK , 不, 不, 好的, 好的, 好的" ...

关于“为什么”这种接收模式存在的任何想法?

谢谢

【问题讨论】:

  • 'autoStartup' 为假有什么原因吗?您可以尝试使用“真实”值吗?
  • @kmansoor 我不得不将其设置为 False,因为我手动启动和停止 MQueue(来自应用程序的 IHM)。查看此以获取更多详细信息stackoverflow.com/questions/43207792/…
  • 你能肯定地说队列中没有其他听众吗?
  • 是的,如果有另一个听众,它就不会有这样一个规范的消费模式。此外,正如我在问题的“编辑”部分中所述,concurrentConsumers 也会对这种模式产生影响
  • 每次发送 1 条消息,您又会丢失 2 条消息?这些其他消息来自哪里?你能展示一下放置消息的代码和获取消息的代码吗?

标签: spring message-queue ibm-mq spring-jms


【解决方案1】:

看起来很明显,有另一个客户端正在监听我的 MQueue。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多