2014-03-06 70 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