3.2.4 CTMを使用する場合に実行される処理
CTMを使用する場合,次のタイミングで,CTMを使用するための処理が実行されます。
-
J2EEサーバの起動処理
-
J2EEアプリケーションの開始処理
-
J2EEアプリケーションの停止処理
-
J2EEサーバの停止処理
ここでは,それぞれのタイミングで実行される処理について説明します。
(1) J2EEサーバの起動処理
CTMを使用するようにカスタマイズされているJ2EEアプリケーションを開始するためには,J2EEサーバの起動時に,CTMデーモンとのコネクションを確立して初期化処理を実行する必要があります。コネクションの確立と初期化は,次の操作によって実行されます。
-
CTMを使用するための設定をします。
-
CTMデーモンを起動します。
-
J2EEサーバを起動します。
J2EEサーバが起動する時に,J2EEサーバによってCTMデーモンとのコネクション確立と初期化処理が実行されます。J2EEサーバの起動前に必ずCTMデーモンを起動してください。
CTMデーモンを使用するための設定については,「3.4.2 実行環境での設定」を参照してください。CTMデーモンおよびJ2EEサーバの起動については,マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.24 システムを起動する(CUI利用時)」を参照してください。Smart Composer機能を使用してシステムを起動すると,CTMデーモン,J2EEサーバの順序で起動処理が実行されます。
なお,J2EEサーバの起動時にCTMデーモンとのコネクション確立と初期化に失敗した場合は,J2EEサーバの起動が失敗します。この場合は,失敗した要因に対処してから,J2EEサーバを再起動してください。
(2) J2EEアプリケーションの開始処理
J2EEアプリケーションを開始すると,J2EEサーバからCTMデーモンに対して,指定されたキュー名称でスケジュールキューを活性化する要求が発行されます。CTMデーモンでは,キューを活性化してから,CTMデーモンの処理対象になる業務処理プログラムのcreateを,J2EEサーバに対して実行します。createは,CTMデーモンから直接呼び出される業務処理プログラムごとに,同時実行スレッド数(Parallel Count)分実行されます。
業務処理プログラムに対応するEJBオブジェクトリファレンスが作成されると,それがCTMデーモンに返却されます。CTMデーモンでは,それをプールしておき,スケジュールキューにリクエストが登録された時に,それぞれのリクエストに割り当てます。これによって,リクエストが振り分けられます。
(3) J2EEアプリケーションの停止処理
J2EEアプリケーションを停止する時には,まず,CTMデーモンから新たにリクエストが振り分けられないように,CTMデーモンが管理しているスケジュールキューを閉塞(非活性化要求)します。CTMデーモンでは,キューを非活性化してから,CTMデーモンの処理対象になる業務処理プログラムのremoveを,J2EEサーバに対して実行します。removeは,CTMデーモンから直接呼び出される業務処理プログラムごとに,同時実行スレッド数(Parallel Count)分実行されます。
そのあとで,CTMを使用しない場合と同じように,J2EEアプリケーションの停止処理が実行されます。
(4) J2EEサーバの停止処理
J2EEサーバを停止する時に,J2EEサーバとCTMデーモンとのコネクションが切断されます。