19.2.1 ユーザイベントハンドラの流れ
ユーザイベントハンドラの流れを次の図に示します。
- 〈この項の構成〉
(1) ユーザイベントハンドラのサンプルプログラム
Developerを使用している場合,ユーザイベントハンドラのサンプルプログラムは次のディレクトリに格納されています。
<運用ディレクトリ>\project\java\user-event-handler
ユーザイベントハンドラのサンプルプログラムを次に示します。
// EADsが提供するパッケージをインポートする import com.hitachi.software.xeads.event.EventHandler; import com.hitachi.software.xeads.event.EventContext; public class EventHandlerSample implements EventHandler { // ユーザイベントハンドラの初期化処理を実装する public void init(EventContext context) { context.getLogger().log("init event at " + context.getServerName()); } // ユーザイベントハンドラの処理を実装する public void execute(EventContext context) { context.getLogger().log("execute event at " + context.getServerName() + ",key=" + context.getKey()); } // ユーザイベントハンドラの終了処理を実装する public void destroy(EventContext context) { context.getLogger().log("destroy event at " + context.getServerName()); } }
(2) EADsが提供するパッケージをインポートする
EADsが提供する次のパッケージをインポートします。
import com.hitachi.software.xeads.event.EventHandler;
import com.hitachi.software.xeads.event.EventContext;
(3) ユーザイベントハンドラが動作する条件を指定する
ユーザイベントハンドラが動作する条件を指定する場合は,アノテーションを付けます。
オペレーションタイプフィルタは,EventHandlerインタフェースを実装したクラスにOperationFilterアノテーションを付けることで設定します。
データフィルタは,EventHandlerインタフェースを実装したクラスにDataFilterアノテーションを付けることで設定します。
(4) ユーザイベントハンドラの初期化処理を実装する
EventHandlerインタフェースのinit()を使用して,EADsサーバの開始時に呼び出される,ユーザイベントハンドラの初期化処理を実装します。
init()の引数EventContextを通じて,EADsサーバの情報を取得できます。
なお,init()の実行時に例外が発生した場合,このユーザイベントハンドラは使用できません。
(5) ユーザイベントハンドラの処理を実装する
EventHandlerインタフェースのexecute()を使用して,ユーザイベントハンドラの処理を実装します。
execute()の引数EventContextを通じて,EADsサーバの情報を取得できます。
実行できる操作を次に示します。
-
EADsサーバの情報の取得(EventContextインタフェース)
-
EADsクライアントの情報の取得(ClientInfoインタフェース)
-
ユーザログへの出力(UserLoggerインタフェース)
(6) ユーザイベントハンドラの終了処理を実装する
EventHandlerインタフェースのdestroy()を使用して,EADsサーバの終了時に呼び出される,ユーザイベントハンドラの終了処理を実装します。
destroy()の引数EventContextを通じて,EADsサーバの情報を取得できます。
なお,ユーザイベントハンドラの初期化処理に失敗した場合,destroy()は呼び出されません。