Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


19.4.2 サーバ起動・停止フック機能の実装方法

サーバ起動・停止フック機能は,com.hitachi.software.ejb.application.InitTermProcessインタフェースを実装することで利用できます。サーバ起動フック処理はserverInitializingメソッド,停止フック処理はserverTerminatingメソッドに実装します。次に,InitTermProcessインタフェースの実装例を示します。

package sample;
 
import com.hitachi.software.ejb.application.InitTermProcess;
import com.hitachi.software.ejb.application.InitTermException;
 
public class AppInitTerm implements InitTermProcess {
    public void serverInitializing() throws InitTermException {
        try {
            // サーバ起動フック処理
        } catch (Exception e) {
            throw new InitTermException("詳細メッセージ");
        }
    }
    public void serverTerminating() throws InitTermException {
        try {
            // サーバ停止フック処理
        } catch (Exception e) {
            throw new InitTermException("詳細メッセージ");
        }
    }
}

J2EEサーバは,起動時にデフォルトコンストラクタを使用してサーバ起動・停止フック機能のインスタンスを生成します。このため,クラスおよびデフォルトコンストラクタのアクセス指定子には,publicを指定してください。

サーバ停止フック処理が呼び出されるタイミングは,アプリケーションの停止処理後になります。J2EEサーバでは,スレッドの停止処理を行っていないため,処理スレッドは残りますが,サーバ停止フック処理後に,新たにアプリケーションは実行されません。

ユーザ定義ファイル(usrconf.properties)のサーバ起動・停止フック機能用のプロパティキー(ejbserver.application.InitTermProcessClasses)に,サーバ起動・停止フックのクラス名を指定します。また,サーバ起動・停止フックのクラス名は複数指定できます。ユーザ定義ファイル(usrconf.properties)については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。