2014-10-03 75 views
0

我想將AQ錯誤隊列的大小寫入我的WebGUI。從Oracle AQ讀取錯誤隊列

我當然可以通過與連接工廠建立連接來計算正常隊列的大小。然而,這個連接並不打算得到關於錯誤隊列的提示,不是嗎?

如果有機會濫用此已建立的會話(連接到常規隊列)來獲取錯誤隊列的總大小,我該怎麼做?我優先使用EJB。

  • 如果沒有,我就一定得從DBA的JMS數據庫用戶,然後從那裏讀出隊列的大小。
  • 或者,我可以使用MBeans嗎?

我寧可換個角度來使用連接工廠(會話)。

感謝

回答

1

您可能(如果你能)的異常隊列做一個普通select。對於異常隊列,數據庫中總是有一個常規表。

有關AQ異常隊列的信息,請參閱Oracle AQ documentation

0

如果你不具備DB-讀訪問,並僅限於消費消息,到(Oracle高級)隊列,你冷:

  1. 從隊列
  2. 增量獲取信息一個索引,包含您從隊列中獲取的每條消息
  3. 在索引增加後回滾。

這樣,您就不會消耗郵件,但能指望它。

我想明確這一點:這是一個解決辦法!如果您尚未被授予對高級排隊數據庫的讀取權限!如果隊列堆疊或消耗很快,這種方法也不能很好地工作。大小數爲及時調用SELECT COUNT(*) FROM MYADVANCEDQUEUE時相比,不太精確。

我肯定DONT推薦這個,如果你有一個直接的解決方案。