ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド

2.2.4 起動/停止の実行クラス

実行クラスとは

IJServerの起動時や停止時に任意のJavaアプリケーションを呼び出すことができます。
IJServerの起動時に呼び出すJavaアプリケーションを起動時実行クラスと呼び、IJServerの停止時に呼び出すJavaアプリケーションを停止時実行クラスと呼びます。
実行クラスでは、IJServerやJava VMプロセス単位で一度だけ行う初期化や終了処理を実装することにより、以下のような処理に利用することができます。

実行クラスからは、以下がJNDIで参照可能です。

また、実行クラスからは、以下のEJBアプリケーションが呼び出しが可能です。

実行クラスを呼び出す契機

実行クラスを呼び出す契機は以下のとおりです。

実行クラスの作成方法

実行クラスを作成するために、特別なクラスやインタフェースを用意する必要はありません。
以下の2つの条件を満たすJavaアプリケーションを作成してください。

以下に、単純な実行クラスの例を示します。

  package test;
  public class UserStartup{
    public static void main(String args[]){
      if(args.length == 1){
        System.out.println(args[0]);
      }
      //ユーザ実装をここに記述
    }
  }

実行クラスの登録方法

実行クラスの登録は、以下に示す2つの設定をInterstage管理コンソールで行います。詳細はInterstage管理コンソールのヘルプを参照してください。また、isj2eeadminコマンドで登録することも可能です。詳細は、“リファレンスマニュアル(コマンド編)”を参照してください。

  1. 実行クラスの設定
    実行クラスの設定情報を登録します。

  2. クラスパスの設定
    実行クラスをワークユニットのクラスパスに設定します。

注意

  • IJServerのタイプが「WebアプリケーションとEJBアプリケーションを別JavaVMで運用」の場合、Servletコンテナ用とEJBコンテナ用の2つのクラスパスが存在します。実行クラスを呼び出すコンテナのクラスパスに設定してください。

  • IJServerのタイプが「WebアプリケーションとEJBアプリケーションを別JavaVMで運用」の場合、コンテナ依存の処理に対応するために、実行クラスを起動するコンテナを次の3つの中から選択してください。

    • Webコンテナ

    • EJBコンテナ

    • Web・EJB両方

  • 起動時実行クラスで発生した例外がIJServerワークユニットにthrowされた場合に、IJServerの起動を続行するか中止するかを選択することができます。

  • クラスローダの分離が「EAR間で分離」または「すべて分離」の場合、起動時実行クラスまたは停止時実行クラスからEJBアプリケーションを呼び出すことはできません。

  • 実行クラスから別のJava VM上のEJBアプリケーションに対して処理を行う場合、実行クラスを起動する前にあらかじめEJBアプリケーションを配備したIJServerを起動しておく必要があります。
    IJServerのタイプが「WebアプリケーションとEJBアプリケーションを別JavaVMで運用」の場合、Webコンテナで設定した実行クラスから同一IJServer内のEJBアプリケーションに対する処理呼び出しは保証されません。
    以下に、処理が実行できない場合の例と回避方法を示します。

    処理できない例

    回避方法

    IJServerのタイプが「WebアプリケーションとEJBアプリケーションを別JavaVMで運用」の場合、Webコンテナで設定した実行クラスから同一IJServer内のEJBアプリケーションのlookup処理。

    以下のどちらかを選択する。

    • 実行クラスを起動するコンテナをEJBコンテナとする。

    • 実行クラスが設定されているIJServerとは別のIJServerにEJBアプリケーションを配備し、起動しておく。

  • 起動時実行クラスまたは停止時実行クラスから呼び出したEJBアプリケーション内ではEJBタイマーサービスの機能は使用できません。