从主题中获取所有消息

Get all messages from topic

如何从 Tibco 中的 JMS 主题获取所有消息?

我知道我可以使用主题订阅者,但它不能完全满足我的需要。我只想每天启动一个进程,该进程将读取主题中的所有消息并进行处理。我不能在同一个进程中同时拥有计时器和主题订阅者。

我试过 "Wait for JMS Topic Message",但它似乎只收到一条消息,无论我在主题中有多少条消息。

我认为最好的解决方案是将 JMS 主题连接到队列并在流程开始时使用 "JMS Queue Receiver" activity。

每天启动一次实例后,它将连接并处理队列中的所有消息。

我会尝试换个方向。您可以使用 2 个单独的进程来实现它。

一个进程,一个接收所有消息的主题订阅者(具有持久性)。默认情况下应该禁用此进程启动器(因此侦听器不活动)。

第二个进程是一个定时器,它会通过Hawk(Engine Command)激活第一个进程。所以每次订阅者被激活时,它都会开始处理事件。

这里有问题的部分是主题订阅者完成后停用。为此,您需要一个单独的逻辑,何时停用订阅者。这也可以通过单独的计时器或当订阅者没有更多消息时触发的一些 Hawk 规则来完成。

一个更自然的解决方案(如果可以实现的话)是只实现一个主题订阅者(或者一个队列订阅者,如果主题被桥接到一个队列)并让 BusinessWorks 引擎在收到消息时生成作业实例已发布。

与从主题或队列中获取所有消息相比,这允许更均匀地分布工作负载。