2.12.3 EJBタイマの自動生成

EJBタイマを自動で生成する方法について説明します。EJBタイマの自動生成には次の方法があります。

@Scheduleアノテーションを指定する方式およびサーブレット方式では,アプリケーション開始時にEJBタイマを自動生成できます。アプリケーションの自動起動を有効にしておくことによって,J2EEサーバ起動時に自動生成することもできます。Managementイベント方式では,J2EEサーバ起動時にEJBタイマを自動生成できます。

<この項の構成>
(1) J2EEサーバ起動時のEJBタイマの自動生成(@Scheduleアノテーションを指定する方式)
(2) J2EEサーバ起動時のEJBタイマの自動生成(サーブレット方式)
(3) J2EEサーバ起動時のEJBタイマの自動生成(Managementイベント方式)

(1) J2EEサーバ起動時のEJBタイマの自動生成(@Scheduleアノテーションを指定する方式)

EJB 3.1のStateless Session BeanおよびSingleton Session Beanの場合に使用できる方式です。アプリケーション開始時に,EJBコンテナがSession Beanのクラスに指定された@Scheduleアノテーションの定義に基づいて,自動的にタイマを生成します。

タイマは,タイマによる処理を実行するBeanクラスまたはその親クラスのメソッドに,@Scheduleアノテーションを指定することで生成できます。複数のタイマを起動する場合は@Schedulesアノテーションを指定します。

(2) J2EEサーバ起動時のEJBタイマの自動生成(サーブレット方式)

EJBタイマの自動生成処理をサーブレットで実装する場合の,EJBタイマ自動生成の流れと設定について説明します。

(a) EJBタイマの自動生成の流れ

サーブレット方式では,次のような流れでEJBタイマが自動生成されます。

図2-23 EJBタイマの自動生成の流れ(サーブレット方式)

[図データ]

  1. J2EEサーバを再起動する。
  2. J2EEアプリケーションが自動で開始する。
    J2EEサーバ停止時に開始状態だったJ2EEアプリケーションが自動で開始されます(アプリケーションの自動起動を有効にしておく必要があります)。
  3. initメッドが実行される。
    J2EEアプリケーションが開始するとサーブレットがロードされ,initメッドが実行されます。initメソッドでは,Enterprise Beanを生成してビジネスメソッドを呼び出します。
  4. EJBタイマが生成される。
    Enterprise Beanのビジネスメソッドで,Timer ServiceオブジェクトからEJBタイマが生成されます。
(b) EJBタイマを自動生成するための設定

サーブレットでEJBタイマを自動生成するには,次の設定をします。

  1. Enterprise BeanにEJBタイマを生成するビジネスメソッドを作成する。
  2. サーブレットを作成する。
    initメソッドで,手順1.で作成したビジネスメソッドを呼び出すようにします。
  3. J2EEアプリケーションの開始時に,手順2.で作成したサーブレットをロードさせる。
    DD(web.xml)で,手順2.で用意したサーブレットの<load-on-startup>タグの値を0以上に設定します。
  4. J2EEサーバ起動時に,アプリケーションの自動起動を有効にする。

(3) J2EEサーバ起動時のEJBタイマの自動生成(Managementイベント方式)

EJBタイマの自動生成処理をManagementイベントとして設定する場合の,EJBタイマ自動生成の流れと設定について説明します。

(a) EJBタイマの自動生成の流れ

Managementイベント方式では,次のような流れでEJBタイマが自動生成されます。

図2-24 EJBタイマの自動生成の流れ(Managementイベント方式)

[図データ]

  1. J2EEサーバを再起動する。
  2. メッセージが出力される。
    J2EEサーバの起動が完了するとメッセージKDJE30028-Iが出力されます。このメッセージが出力されることで,Managementイベントが発生します。
  3. Managementアクションが実行される。
    Managementイベントを受けて,Managementアクションが実行されます。Managementアクションでは,バッチファイルが実行されます。
  4. バッチファイルが実行される。
    バッチファイルで,EJBクライアントアプリケーションが実行されます。
  5. EJBクライアントアプリケーションでビジネスメソッドが呼ばれる。
    EJBクライアントアプリケーションで,Enterprise Beanを生成してビジネスメソッドを呼び出します。
  6. EJBタイマが生成される。
    Enterprise Beanのビジネスメソッドで,Timer ServiceオブジェクトからEJBタイマが生成されます。
(b) EJBタイマを自動生成するための設定

Managementイベントを使用してEJBタイマを自動生成するには,次の設定をします。

  1. Enterprise BeanにEJBタイマを生成するビジネスメソッドを作成する。
  2. EJBクライアントアプリケーションを作成する。
    手順1.で作成したビジネスメソッドを呼び出すようにします。
  3. 手順2.で作成したEJBクライアントアプリケーションを実行する環境,およびバッチファイルを作成します。
  4. Managementイベントの自動実行を設定する。
    Managementイベントを有効にします。J2EEサーバ開始完了時に出力されるKDJE30028-IをManagementイベントに設定し,このManagementイベントに対するManagementアクションとして,手順3.で準備したバッチファイルを設定します。
    Managementイベントの詳細については,マニュアル「アプリケーションサーバ 機能解説 運用/監視/連携編」の「9. Managementイベントの通知とManagementアクションによる処理の自動実行」を参照してください。