這是Oracle 11.2.0.3。爲什麼OracleAQ將隊列中的Leave Dead訂閱者?
我們遇到了一個問題,我們在OracleAQ上使用Oracle的JMS。這工作正常,除了我們開始注意隊列充滿了1000年,然後數百萬消息隨着時間的推移。其中一些處於PROCESSED狀態,但大多數都是READY。我們將這種行爲追溯到「殭屍」或死亡用戶的主題。當Java進程終止並且沒有機會註銷自己時,它將訂閱者記錄留在隊列中,並且ORacle似乎沒有檢測到它已經死亡。如此多以至於MONTHS後來,發送到我們的多用戶隊列中的新消息將乘以訂戶數量,它認爲這比實際數量高得多。 (當我們達到最大用戶數限制時,我們首先注意到了這一點)。
我們已經運行了qmon進程 - 我甚至嘗試增加最小進程數至無效。只要隊列中沒有死亡用戶,隊列清理就會非常好地發生。
任何人都看到過,並希望找到解決方案?
我面臨同樣的問題,並試圖解決它。如果我找到解決方案,可以將其發佈到此處供其他用戶參考。 – gyan 2014-09-23 20:54:10