2

Coherenceキャッシュを更新できるように、OracleにDCN(データベース変更通知)を実装して、DBのイベントをリスナーに通知しようとしています。

ここのチュートリアルに従いましたが、mainメソッドを備えたサンプルプログラムを使用してリスナークラスを実行し、実行を継続することで問題なく動作しています。

私の質問は、ローカルテストがリスナーの実行を維持するためのメインメソッドのみを実行していたため、この通知とリスナーを本番環境にどのように実装するのかということです。リスナーを常にバックグラウンドで実行し、データベースから通知を受信するために使用するテクノロジーは何ですか)?

アプリサーバーとしてWeblogic10を使用しています。

編集

weblogicスタートアップクラスはこの目的で機能しますか?

4

1 に答える 1

0

リスナーは、新しいスレッドで JDBC ドライバーによって実行されます ( http://docs.oracle.com/cd/E14072_01/java.112/e10589/dbchgnf.htmの説明を参照してください)。それが言うように、純粋な JDBC アプローチを使用していると仮定すると、次のようになります。

「JDBC ドライバーは、(専用チャネルを介して) サーバーからの通知をリッスンする新しいスレッドを起動し、これらの通知メッセージを Java イベントに変換します。次に、ドライバーは、この登録に登録されているすべてのリスナーに通知します。」

そのため、Weblogic スタートアップ クラス、または "load-on-startup" が設定されたサーブレットの init() メソッドを使用して登録を行い、その後は忘れることができます。コールバックは、別のスレッドで JDBC ドライバーによって呼び出されます。

于 2013-01-19T21:05:31.643 に答える