DBMS_AQ.POSTの使用例とそのユーティリティの説明
-
05-07-2019 - |
質問
DBMS_AQパッケージには、POSTというメソッドがあります。
ドキュメントには、
この手順は、次のリストに投稿します すべてを許可する匿名サブスクリプション に登録されているクライアント 通知を取得するサブスクリプション 持続メッセージ。この機能は バッファリングされたメッセージではサポートされていません。
and
この呼び出しはベストエフォートを提供します 保証。通知は 登録済みのクライアントは1回まで。この 呼び出しは主に軽量に使用されます お知らせ。アプリケーションが必要な場合 より厳格な保証、それができます キューにエンキューします。
私はすべての単語を理解していますが、非保証型メッセージングの目的がわかりません。どこかに行くために何かを必要とするので、私は何かをキューに入れます。たぶんそれは私のビジネスがこのためのユースケースを持っていないというだけかもしれません。そのような技術のユースケースを知りたい。
解決
最初に頭に浮かぶのは、DB情報に関心を持つクライアントアプリケーションが多数存在する可能性があることです。一部のシステムは、有用ではあるがそれほど重要ではない情報(たとえば、ユーザーに表示されるテーブル内の行の総数)でデータベースを更新するイベントをトリガーします。
次に、これをクライアントにブロードキャストしたいのですが、クライアントが本当にビジーな場合(またはネットワークが切断されるなど、短時間オフラインになる場合)、このアプローチを使用して重要でないメッセージをドロップできます。これは、クライアントがオフラインになっている場合、クライアントが再接続するときにすべての情報を再度検索する場合があるため、状況によっては最適な方法です。
ユースケースもありますが、保証された配信ほど一般的ではないと思います-TCPがUDPよりもかなり多く使用されているように見えます。