按计数从JMS MQ或内存中的消息存储读取消息

按计数从JMS MQ或内存中的消息存储读取消息,jms,wso2,wso2esb,ibm-mq,Jms,Wso2,Wso2esb,Ibm Mq,我想根据计数从JMS MQ或内存中的消息存储读取消息。 就像我希望在消息计数为10时开始读取消息,直到我希望消息处理器空闲。 我希望使用WSO2 ESB完成此操作。 有人能帮我吗 谢谢。我不熟悉wso2,但从MQ的角度来看,这样做的方法是在队列上有10条消息时触发应用程序运行。这里有一些触发器设置,特别是TRIGTYPE(DEPTH)为了扩展Morag的回答,我怀疑WS02是否有内置触发器,可以在读取消息之前监视队列的深度。我怀疑它只是监听队列并在消息到达时进行处理。我还怀疑您是否可以使用MQ的

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


谢谢。

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

为了扩展Morag的回答,我怀疑WS02是否有内置触发器,可以在读取消息之前监视队列的深度。我怀疑它只是监听队列并在消息到达时进行处理。我还怀疑您是否可以使用MQ的触发机制根据深度方便地直接执行流。因此,尽管触发是一个很好的答案,但您需要一些粘合代码来实现这一点

方便的是,有一个教程提供了几乎所有必要的信息来完成这项工作。详情请参阅。这篇文章提供了使Q程序与MQ触发一起工作所必需的脚本。您只需要做一些更改:

  • 与其向Q发送删除消息的命令,不如发送移动消息的命令

  • 放弃计算要删除多少条消息的数学运算,或者一批10条地移动它们,或者移动所有消息,直到队列耗尽为止。在后一种情况下,确保告诉Q等待任何掉队者


  • 以下是完成时的情况:传入消息落在WS02输入队列以外的某个队列上。该队列是根据深度触发的,因此Q程序()将消息复制到真实的WS02输入队列。复制消息后,粘合代码将重置触发器。这会一直持续到队列上的消息少于10条,此时循环将处于空闲状态。

    我通过将消息推送到db获得消息,并按照我的回答中所需的计数获取。请查看我的