如何从Tibco中的JMS主题获取所有消息?
我知道我可以使用主题订阅者,但它不能完全满足我的需求。我想每天只启动一个进程,它将读取主题中的所有消息并处理它们。我不能在同一个过程中同时拥有计时器和主题订阅者。
我尝试了"等待JMS主题消息",但似乎只有一条消息,无论我在主题中有多少消息。
答案 0 :(得分:2)
我会尝试不同的方向。您可以使用2个独立的进程实现此目的。
一个进程,一个主题订阅者(具有持久性),它接收所有消息。默认情况下应禁用此进程启动器(因此侦听器未处于活动状态)。
第二个进程是一个计时器,它将通过Hawk(引擎命令)激活第一个进程。因此,每次订阅者被激活时,它都将开始处理事件。
这里有问题的部分是主题订阅者完成后的停用。为此,您需要一个单独的逻辑,何时停用订户。这也可以通过单独的计时器或某些Hawk规则来完成,当用户没有更多消息时,它会触发。
答案 1 :(得分:1)
我认为最好的解决方案是将JMS主题桥接到队列并使用" JMS队列接收器"在您的流程开始时的活动。
每天启动一次实例后,它将连接并处理队列中的所有消息。
答案 2 :(得分:0)
一个更自然的解决方案(如果可以实现)是仅实现一个主题订阅者(如果主题被桥接到一个队列,则为Queue订阅者),并让BusinessWorks Engine在发布消息时生成Job实例。
这样可以更加均匀地分散工作负载,而不是从主题或队列中获取所有消息。