2014-03-06 72 views
1

Tibco将信息存储在数据文件或数据库中。我需要浏览发布到主题或队列的旧消息。 EMS是否提供任何API来搜索旧消息? 假设我在时间t1有一个主题complexEvent.topic,发布者发布消息给complexEvent.topic,在时间t2消费者消费该消息。从t2开始2小时后说,我需要查看在t1和t1 + 10(分钟)之间发布到主题complexEvent.topic的所有消息。 如何搜索旧消息?查看tibco ems历史信息

回答

1

EMS不会按设计存储消息的副本:MOM不是DBMS,通常应优化MOM的性能。

对于特定需求和PUNCTUAL需求(例如您的需求),我只需从目标(主题,队列)创建一个EMS桥(类似于MQ别名,请参阅EMS文档),以便将其记录到“DESTINATIONNAME.log”队列。这样,当前的代码和目标不受影响。

之后,您可以使用Java QueueBrowser和MessageSelector搜索日志队列中的消息。 有关详细信息,请参阅此Oracle Documentation

不要忘记清理队列(您也可以设置消息限制和溢出策略)。

如果性能至关重要,请考虑将日志记录队列存储在不同的EMS实例上。

+0

嗨GhislainCote,感谢您的答案。我为开发团队提供了一个TIBCO平台。他们可以使用自动安装脚本构建主题和队列。我无法控制创建桥梁,因为我不知道何时会创建新主题或队列,但需要仪表板来监视历史消息并搜索特定消息。即使我们重新启动EMS服务器,监视器也应在重新启动之前找到消息。 – Sujoy

+0

除了拥有完全独立的日志存储库之外,我看到的唯一的另一种可能性是将EMS存储设置为Databse而不是文件。然后,您应该能够通过直接连接到数据库来构建(基于Web的?)仪表板......无需EMS。祝你好运 ! – GhislainCote

+0

谢谢!我发现一种混合的方法 - 读取系统目标并将所有消息记录到自定义数据库表中。 – Sujoy