InterstageでIJServerクラスタを使用する場合には、Interstageのライフサイクルモジュールを利用することによって、IJServerクラスタの起動時にApcoordinatorで作成したセションBeanを実行することができます。ライフサイクルモジュールは、IJServerクラスタの起動、停止などのイベントを契機として任意の処理を実行するためのクラスです。Apcoordinatorは、IJServerクラスタの起動時にセションBeanを呼び出すライフサイクルモジュールを用意しており、利用者が独自にライフサイクルモジュールを開発することなく、IJServerクラスタ起動時にセションBeanを呼び出すことが可能です。
Apcoordinatorが提供するライフサイクルモジュールを利用すると、以下の処理が実現できます。
IJServerクラスタの起動時に、セションBeanで利用者定義の処理を実行します。
IJServerクラスタの起動時に、セションBeanの初期化処理を実行します。 セションBeanを最初に実行した時は、設定ファイルの読み込みやクラスのロードなどの初期化に時間がかかる場合があります。 IJServerクラスタの起動時にセションBeanを実行することで、このような初期化処理をあらかじめ実行することができます。
Apcoordinatorが提供するライフサイクルモジュールは、ライフサイクルイベントREADY_EVENTが発生したときにセションBeanを呼び出します。 READY_EVENTは、アプリケーションのロード後、アプリケーションへのアクセス受付開始後に発生します。ライフサイクルモジュールの詳細はInterstage Application Server/Interstage Web Server Java EE運用ガイドの「ライフサイクルモジュール」を参照してください。
注意
Apcoordinatorが提供するライフサイクルモジュールから呼び出せるのは、Apcoordinatorで作成したセションBeanです。
ライフサイクルモジュールからは、ローカルビジネスインタフェースを使ってセションBeanを呼び出すことはできません。
IJServerクラスタの起動時にセションBeanで利用者定義の処理を実行する場合は、実行する処理をアプリケーションに追加します。また、Apcoordinatorが提供するライフサイクルモジュールをIJServerクラスタに設定します。
ここでは処理の追加方法を説明します。ライフサイクルモジュールの設定については33.2.8.3 ライフサイクルモジュールの設定を参照してください。
ビジネスクラスへのメソッドの追加
IJServerクラスタ起動時に実行するメソッドをビジネスクラスに追加します。引数はDispatchContextのみです。以下の例では、メソッド名をstartEjbとしています。
package somepackage; import com.fujitsu.uji.DispatchContext; import com.fujitsu.uji.GenericHandler; public class SomeHandler extends GenericHandler { public void startEjb(DispatchContext context) { // IJServer起動時に実行する処理を記述します。 ... } ... }
処理結果に応じてIJServerクラスタの起動を中止させる場合は、以下の設定と処理が必要です。
IJServerクラスタの起動を中止させたい場合は、ビジネスクラスから例外を発生させます。
例外発生時にIJServerクラスタの起動を中止するように、ライフサイクルモジュールを設定します。詳細は33.2.8.3 ライフサイクルモジュールの設定を参照してください。
コマンドマップの追加
作成したメソッドを、コマンドマップに追加します。データBeanはなし、コマンドはuji.initializeです。
;uji.initialize=somepackage.SomeHandler.startEjb
IJServerクラスタの起動時にセションBeanの初期化処理を実行する場合は、 Apcoordinatorが提供するライフサイクルモジュールをIJServerクラスタに設定します。詳細は33.2.8.3 ライフサイクルモジュールの設定を参照してください。セションBeanに処理を追加する必要はありません。
ライフサイクルモジュールは、Java EE管理コンソール(Interstage Java EE)またはJava EE運用コマンドを使って設定します。
Java EE管理コンソール(Interstage Java EE)を使う場合は、[アプリケーション]の[ライフサイクルモジュール]を選択します。
Java EE運用コマンドを使う場合は、asadmin create-lifecycle-moduleコマンドを実行します。
設定方法の詳細は、Interstage Application Server/Interstage Web Server Java EE運用ガイドの「ライフサイクルモジュール」を参照してください。
Apcoordinatorが提供するライフサイクルモジュールを使用するには以下の設定が必要です。
設定項目 | 設定値 | |
管理コンソールの項目名 | Java EE運用コマンドの項目名 | |
名前 | オペランド | ライフサイクルモジュールの定義名を指定します。"initialize"など、適宜設定します。 |
(設定不要) | オプション | ライフサイクルモジュールの定義を登録するIJServer名を指定します。 |
クラス名 | オプション | com.fujitsu.uji.ejb.workunit.ReadyListenerを指定します。 |
クラスパス | オプション | ライフサイクルモジュールのクラスパスを指定します。以下のクラスパスを指定します。
|
追加プロパティ | オプション | 呼び出すセションBeanのJNDI名を以下の形式で指定します。 ejb=JNDI名 セションBeanのJNDI名がどのように決定されるかについては、Interstage Application Server/Interstage Web Server Java EE運用ガイドの「JNDI」を参照してください。 |
上記以外の項目は必要に応じて設定してください。