これは Oracle 11.2.0.3 です。
OracleAQ を介して Oracle の JMS を使用する場合に問題が発生します。これは問題なく動作しますが、キューが数千のメッセージでいっぱいになり、時間の経過とともに数百万のメッセージでいっぱいになることに気付き始めました。これらのいくつかは PROCESSED 状態にありますが、ほとんどは READY です。この動作は、「ゾンビ」またはトピックの購読者の死亡にまで遡ることができました。Java プロセスが終了し、それ自体を登録解除する機会が得られない場合、サブスクライバー レコードがキューに残され、Oracle はプロセスが停止していることを検出しないようです。数か月後、マルチサブスクライバー キューに送信された新しいメッセージはサブスクライバーの数で乗算され、実際よりもはるかに多いと見なされます。(これは、登録者数の上限に達したときに初めて気付きました。)
qmon プロセスが実行されています。プロセスの最小数を増やしても効果がありませんでした。キューに死んだサブスクライバがない限り、キューのクリーンアップは非常にうまく行われます。
誰もこれを前に見たことがありますか?うまくいけば解決策を見つけましたか?