2016-07-04 10 views
0

アプリケーションで複数のAQを実装しました。いくつかの例外シナリオのため、メッセージはAQの1つに届きません。したがって、最後の10分のキューにエンキュー/デキューがない場合、アラートを生成するための監視を実装する必要があります。キュー表でSCN_TO_TIMESTAMP(MAX(ora_rowscn))関数を使用しようとしましたが、その時点でキューが空の場合は結果を返しません。Oracleの高度なキューでゼロアクティビティを監視する方法

これを実装する最善の方法を提案してください.thanks!

答えて

0

ステータステーブルを作成する - 1行(監視するキューごと)。

DEQUEUEは、監視するキューに対していつでも起動します。 そのレコードの "LAST_DEQUEUE_TIME"の単純なUPDATEを実行してください。 ;)

これで、10分ごとに目を覚ますプロセスが必要になり、そのレコードを覗いてみましょう。

もっと「エレガントな」ソリューションがあるかもしれませんが、これはおそらく最も簡単な方法です。

また、ある時点でDEQUEUEがオン/オフになっているかどうかを示す列を含めることもできます(つまり、メンテナンスのためにDEQUEUEを無効にした場合など)。 "パニック"ではないと伝えることができます))

0

迅速なソリューションをありがとうございました。 GV $ PERSISTENT_QUEUESのLAST_ENQUEUE_TIMEフィールドとLAST_DEQUEUE_TIMEフィールドを使用した組み込みのソリューションが見つかりました。

関連する問題