0

Oracle データベースで新しいレコードが見つかったときに通知を表示する、小さな Java デスクトップ アプリケーションを作成するというアイデアがあります。

すべてのデスクトップ クライアントにクエリを実行させたくないので、クエリを実行し、他のすべてのプロセスに通知を表示するタイミングを知らせる 1 つのメイン プロセスを作成することを考えていました。

私は Oracle 9i に限定されているため、変更通知を使用できません。AskTom は、dbms_alert が Oracle 9i の優れた代替手段であると述べています。

したがって、私が今考えていることは、定期的にクエリを実行してから dbms_alert を発行する crontab を介して実行する sqlplus スクリプトを作成することです。

私のデスクトップ アプリケーションについては、少し混乱しています。dbms_alert には、waitany や waittone などのメソッドがあります。これは、dbms_alerts を受信できるように、デスクトップ アプリケーションがデータベースへのライブ アクティブ セッションを開いたままにしておく必要があるということですか?

デスクトップ アプリケーションをデータベースに定期的に接続して、まだ取得されていないアラートを取得することはできませんか?

ありがとう

4

1 に答える 1

1

クエリを実行する db ジョブを作成します。さらに、通知を含むメンテナンステーブルを作成します。新しい記録が見つかった場合のタイムスタンプ。すべての (Java) クライアントには、メンテナンス テーブルの最後のクエリからの独自のタイムスタンプがあるため、新しい記録が見つかった場合に登録されます。ただし、すべてのクライアントが特別な期間にメンテナンス テーブルにクエリを実行するようにする必要があります。

于 2013-05-17T15:23:02.097 に答える