【问题标题】:read messages from JMS MQ or In-Memory Message store by count按计数从 JMS MQ 或 In-Memory 消息存储中读取消息
【发布时间】:2015-07-01 20:28:21
【问题描述】:

我想根据计数从 JMS MQ 或内存消息存储中读取消息。
就像我想在消息计数为 10 时开始阅读消息,直到我希望消息处理器处于空闲状态。
我希望使用 WSO2 ESB 来完成此操作。
有人可以帮帮我吗?

谢谢。

【问题讨论】:

    标签: jms wso2 wso2esb ibm-mq


    【解决方案1】:

    我不熟悉 wso2,但从 MQ 的角度来看,这样做的方法是在队列中有 10 条消息时触发应用程序运行。对此有触发设置,特别是TRIGTYPE(DEPTH)

    【讨论】:

      【解决方案2】:

      为了扩展 Morag 的答案,我怀疑 WS02 是否具有内置触发器,可以在读取消息之前监控队列的深度。我怀疑它只是在队列上侦听并在消息到达时对其进行处理。我也怀疑你是否可以使用MQ的触发机制直接根据深度方便地执行流程。因此,尽管触发是一个很好的答案,但您需要一些胶水代码才能使其发挥作用。

      方便的是,有一个教程提供了执行此操作所需的几乎所有信息。详情请见Mission:Messaging: Easing administration and debugging with circular queues。那篇文章包含使 Q 程序与 MQ 触发一起工作所需的脚本。您只需要进行一些更改:

      1. 不是向 Q 发送命令来删除消息,而是发送命令来移动它们。

      2. 放弃计算要删除多少消息的数学运算,要么分批移动 10 条消息,要么移动所有消息,直到队列耗尽。在后一种情况下,请务必告诉 Q 等待任何落后者。

      这是完成后的样子:传入的消息落在某个队列其他而不是 WS02 输入队列。该队列基于深度触发,以便 Q 程序 (SupportPac MA01) 将消息复制到真正的 WS02 输入队列。复制消息后,胶水代码重置触发器。这种情况一直持续到队列中的消息少于 10 条,此时循环空闲。

      【讨论】:

        【解决方案3】:

        我通过将消息推送到 db 并按照我的这个答案中所需的计数来获取它,看看我的answer

        【讨论】:

          猜你喜欢
          • 2011-03-28
          • 1970-01-01
          • 2016-01-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-19
          • 1970-01-01
          • 2015-11-05
          相关资源
          最近更新 更多