非同期有効範囲とは、アラーム、サブシステム・モニター、および子非同期有効範囲のセットを構成する有効範囲の設定単位のことです。
親から開始することによって、非同期有効範囲を作成できます。
このタスクについて
非同期有効範囲を使用する場合は、
以下のステップの一部またはすべてを行ないます。
プロシージャー
- 非同期有効範囲を作成します。 親の非同期有効範囲オブジェクトは、固有のパラメーター名を使用して AsynchScopeManager.createAsynchScope() メソッドを呼び出すことにより作成します。 非同期有効範囲オブジェクトには、プロパティーを格納することができます。これにより、Java 2 Enterprise Edition (J2EE) アプリケーションは、別の方法では Session Bean に格納できないシリアライズ不可能な状態を格納できるようになります。
親の下にあるデータのスコープ化に役立つ子非同期有効範囲を作成することもできます。
- アラーム通知の listen
- AlarmListener インターフェースをインプリメントすることにより、リスナー・オブジェクトを作成します。
詳しくは、API 文書で AlarmListener インターフェースを参照してください。
- このオブジェクトをアラームのターゲットとして AlarmManager.create() メソッドに提供します。 create() メソッドは、以下のパラメーターを取ります。
- Target for the alarm
- アラームが起動されたときに fired() メソッドが呼び出されるターゲット。
- Context
- アラーム用のコンテキスト・オブジェクト。 これは、アラームに固有のデータをリスナーに提供する場合に役立ち、複数のアラームに対して単一のリスナーをサポートします。
- インターバル
- アラームが発行される前のミリ秒数。
指定された間隔の後、アラームが起動され、リスナーの fired() メソッドが、起動中のアラームをパラメーターに使用して呼び出されます。 アラーム・オブジェクトが戻されます。
このオブジェクト上でメソッドを呼び出すことによって、
アラームを取り消したり、スケジュールを変更することができます。
- リモート・システムをモニターします。
- リモート・システムから送信されたメッセージを検出するメカニズムを
インプリメントします。 例えば、Publish/Subscribe メッセージングをインプリメントします。
- SubsystemMonitorManager.create() メソッドを以下のパラメーターを使用して呼び出すことにより、
サブシステム・マネージャー・オブジェクトを作成します。
- 名前
- 各サブシステム・モニターには固有の名前を付ける必要があります。
- Heartbeat interval
- 各ハートビート間の予期されるミリ秒単位の間隔。
- 失効するまでの消失ハートビート
- サブシステムが失効したとしてマークされる前に失うことのできるハートビート数。
- デッドになるまでの消失ハートビート
- サブシステムがデッドとしてマークされる前に失うことのできるハートビート数。
- SubsystemMonitorEvents インターフェースをインプリメントするオブジェクトを作成します。
詳しくは、Javadoc の SubsystemMonitorEvents
を参照してください。
- SubsystemMonitor.addListener() メソッドを使用して、このオブジェクトのインスタンスをサブシステム・モニターに追加します。
- リモート・システムからのハートビート・メッセージを受け取ったときは、常に
SubsystemMonitor の ping() メソッドを呼び出してください。
サブシステム・モニターでは、リモート・システムのハートビート状態を追跡するアラームが構成されます。 ping() メソッドが呼び出されると、アラームはリセットされます。
アラームが起動する場合、ping() メソッドは呼び出されません。つまり、モニターされているサブシステムからのハートビートがアプリケーションに届いていません。
例
非同期有効範囲は、ステートフル・サーバー・アプリケーション内で役立ちます。
このアプリケーションは、名前付き作業マネージャーで非同期有効範囲を作成する開始 Bean を持つことができます。 また、このアプリケーションは、サブシステム・モニターを作成して、
このアプリケーションが依存しているリモート・システムの正常性をモニターすることができます。
クライアントがサーバーに接続されている場合、このアプリケーションは、クライアントのアプリケーション非同期有効範囲が所有し、クライアント ID を使用して命名される子非同期有効範囲を作成します。 クライアントをモニターするサブシステム・モニターは、
クライアント非同期有効範囲に作成されます。クライアントがタイムアウトになった場合は、
コールバックにより、サーバー上のクライアント状態がクリーンアップされます。 クライアントの代わりに、コールバックがアプリケーション・サブシステム・モニターに接続することができます。 リモート・システムが使用不可になった場合は、サーバーのクライアント・コードに通知され、重要なリモート・システムに障害があることを警告するイベントがクライアントに送信されます。
例えば、障害は、電子取引アプリケーションのデータ・フィードである場合があります。