Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

11.2.3 CTMデーモン

CTMデーモンは,クライアントからのリクエストを処理してリクエストのスケジューリングを実現する,スケジューラの機能を持つプロセスです。

クライアントから送信されたリクエストは,CTMレギュレータというプロセスを経由して,CTMデーモンが受信します。CTMレギュレータについては「11.2.4 CTMレギュレータ」を参照してください。

なお,CTMデーモンの機能を使用するための設定は,CTMデーモンを起動するときにctmstartコマンドの引数として指定します。また,運用管理ポータルで構築したシステムを運用している場合は,論理CTMであらかじめ設定しておくことができます。

CTMデーモンは,次の手順でリクエストを処理します。

  1. リクエストの振り分け
  2. スケジュールキューへのリクエストの登録
  3. 業務処理プログラムの呼び出し
  4. 処理結果の返却

それぞれの処理内容について説明します。

<この項の構成>
(1) リクエストの振り分け
(2) スケジュールキューへのリクエストの登録
(3) 業務処理プログラムの呼び出し
(4) 処理結果の返却

(1) リクエストの振り分け

CTMデーモンの負荷に応じて,リクエストを受け付けたCTMデーモンがそのままリクエストを処理するか,またはほかのCTMデーモンに転送するかを決定して振り分けます。

CTMデーモンは,リクエストを受け付けると,負荷情報をほかのCTMデーモンと連絡し合ってリクエストの振り分け先を決定します。

CTMデーモンは,特定の範囲(CTMドメイン)内のCTMデーモン間で,それぞれが処理対象としているJ2EEアプリケーションに含まれる業務処理プログラムの情報を共有しています。共有した情報は,CTMデーモンと同じホストに配置されているグローバルCORBAネーミングサービスに登録されています。これによって,リクエストを受け付けたCTMデーモンの処理対象に該当する業務処理プログラムがない場合でも,CTMデーモンが持つ情報を基に,適切なCTMにリクエストを振り分けられます。

グローバルCORBAネーミングサービスについては,「11.2.6 グローバルCORBAネーミングサービス」を参照してください。CTMドメインについては,「11.2.5 CTMドメインとCTMドメインマネジャ」を参照してください。

リクエストは,create時の選択ポリシー,およびスケジュールポリシーに従って振り分けられます。

create時の選択ポリシーおよびスケジュールポリシーは,CTMデーモンを起動するときに,次のどちらかを選択できます。

なお,create時の選択ポリシーおよびスケジュールポリシーのタイミングについては,「11.6 CTMによるリクエストの負荷分散」を参照してください。

スケジュールポリシーは,ctmstartコマンドの引数-CTMDispatchPolicyに指定します。create時の選択ポリシーは,ctmstartコマンドの引数-CTMCreatePolicyに指定します。

リクエスト転送時のタイムアウトについて
CTMデーモン間で,リクエスト転送処理が完了するまでの待ち時間にタイムアウトを設定できます。タイムアウトの設定は,ctmstartコマンドの-CTMDCSendTimeOutオプションに指定します。

(2) スケジュールキューへのリクエストの登録

スケジュールポリシーに従って振り分けられたリクエストは,スケジュールキューに登録されます。スケジュールキューに登録できるリクエストの数は,CTMデーモンを起動する時に,設定されています。この値を超えてリクエストを転送された場合には,クライアントにエラーが返却されます。また,指定を省略した場合は,50が設定されます。

登録できるリクエストキューの長さは,CTMデーモンを起動するときにctmstartコマンドの引数-CTMMaxRequestCountに指定します。また,運用管理ポータルで構築したシステムを運用する場合は,あらかじめ論理CTMの設定で設定しておくことができます。ctmstartコマンドまたは運用管理ポータルの設定の詳細については,マニュアル「Cosminexus リファレンス コマンド編」,または「Cosminexus 運用管理操作ガイド」を参照してください。

(3) 業務処理プログラムの呼び出し

スケジュールキューに登録されたリクエストは,CTMデーモンの処理対象であるJ2EEサーバ上の業務処理プログラムを呼び出します。なお,異常終了したJ2EEサーバや,ハングアップした業務処理プログラムを呼び出すことはありません。

(4) 処理結果の返却

処理の実行後,業務処理プログラム(Enterprise Bean)から返却された応答は,CTMデーモンを経由してクライアントに返却されます。なお,リクエストがスケジュールキューに登録されてから取り出されるまでの時間がリクエストのタイムアウト値を超えている場合は,リクエストが破棄されます。