Oracle AQをベースとするメッセージング・システムがあります。問題なくエンキューおよびデキューすることができます。Oracle AQキューが存在するかどうかをプログラムで確認する
スタートアップ前とランタイム中に、たとえば、「キューが実際に指定されたdb-userに存在するかどうかを確認する」と「定期的にキュー内のメッセージの量を確認する」などのサニティチェックを追加する要求があります。
後者は解決するのがかなり簡単だと思われますが、キューのテーブルを調べ、メッセージの数をカウントしますが、最初は奇妙です。 DatabaseMetaData
からドキュメントと利用可能なメソッドを見て、エンキュー/デキューを試みないでこれを実際にチェックする方法はありません。データベースは、テーブル、キー、スキーマなどについて私にすべてを教えてくれますが、私の人生はキューを見つけることができません。奇妙なことに、私もキューテーブルを見つけることはできませんが、これらは単に古典的な方法では "テーブル"ではないかもしれません。
何か不足していますか?情報が利用できないか、別の場所にありますか?
これは通常十分です。ただし、v $ aqの統計情報が間違っていることがあります。キューの深さは、読み取るデータがある場合でも、たとえば負の値としてリストされます。最も安全な方法は、ステータスのキュー表のフィルタリングでselect countを使用することです。 – user2612030