Interstageでワークユニットを使用する場合には、ワークユニットの起動時または終了時に、Apcoordinatorで作成したセションBeanを実行することができます。ワークユニットの起動/停止における実行クラスの詳細はInterstage オンラインマニュアルの“J2EE ユーザーズガイド(旧版互換)”を参照してください。
ワークユニットの設定
ワークユニットの起動時にApcoordinatorで作成したセションBeanを実行する場合には、以下の設定をします。
Interstage管理コンソールから、セションBeanを実行するワークユニットを選択し、[実行クラス]タブを選択します。
[新規作成]タブから以下の内容を入力し、登録を実行します。
項目 | 起動時実行クラス | 停止時実行クラス |
---|---|---|
名前 | Initializerなど、適宜設定します。 | Finalizerなど、適宜設定します。 |
クラス名 | com.fujitsu.uji.ejb.workunit.Initializer | com.fujitsu.uji.ejb.workunit.Finalizer |
実行順 | 任意に設定します。 | |
引数 | セションBeanのJNDI名をjava:comp/env/ejb/SomeEJBのような形式で指定します。 | |
例外発生時のワークユニット起動 | 任意に選択します。 | この項目は表示されません。 |
ワークユニット多重時の呼び出し | [すべてのVMで呼び出し]を選択します。 | |
クラスを実行するコンテナ | [EJBコンテナ]を選択します。 |
アプリケーションの作成
ワークユニットの起動時または停止時にアプリケーションで特定の処理を行う場合は、以下のようにアプリケーションを作成します。
アプリケーション固有の処理が不要な場合は、以下の手順は行わずにワークユニットの設定のみを行うことで、セションBeanの呼び出し部分を実行することができます。
ビジネスクラスへのメソッドの追加
ビジネスクラスに起動時(停止時)の処理のメソッドを追加します。メソッドは以下の形式となります。
package somepackage; import com.fujitsu.uji.GenericHandler; public class SomeHandler extends GenericHandler { public void startEjb(DispatchContext context) { ... } ... }
コマンドマップの追加
作成したメソッドを、コマンドマップに追加します。Beanはなし、コマンドはuji.initialize(停止時はuji.finalize)となります。
;uji.initialize=somepackage.SomeHandler.startEjb
ポイント
アプリケーションを最初に実行した時は、設定ファイルの読み込みやクラスのロードなどの初期化に時間がかかる場合があります。ワークユニットの起動時にセションBeanを実行することで、このような初期化処理をあらかじめ実行することができます。
アプリケーション固有の初期化が不要な場合には、ワークユニットの定義のみを行うことによって、Apcoordinatorの設定ファイルの読み込みなどの初期化処理を実行することができます。
注意
ワークユニットの起動時実行クラスと停止時実行クラスからは、ワークユニット内のEJBのみ利用できます。