Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 拡張編


3.8.1 負荷分散のタイミング

CTMでは,次の2回のタイミングで負荷分散を実行します。

クライアントから業務処理プログラムを呼び出す流れと負荷分散のタイミングを,次の図に示します。

図3‒21 EJBクライアントから業務処理プログラムを呼び出す流れと負荷分散のタイミング

[図データ]

図について説明します。

  1. EJBクライアントは,各ホストに配置されているグローバルCORBAネーミングサービスに対して,lookupを実行します。

    図の場合は,ホストAに対してlookupを実行しています。

    グローバルCORBAネーミングサービスには,スケジュールキューのリファレンスが登録されています。図の場合は,ホストAから,登録されていたスケジュールキューのリファレンスが返却されます。

  2. 取得したリファレンスを使用してcreateを実行します。

    図の場合は,ホストAのCTMデーモンに対して,createを実行しています。

    このタイミングで,1回目の負荷分散が実行されます。

    このとき,create時の選択ポリシーに従って負荷分散が実行されます。

    createを受け付けたCTMデーモンは,create時の選択ポリシーに従って,次のどちらかのリファレンスをEJBクライアントに返却します。

    • createを受け付けたホストのCTMデーモンに対応するCTMレギュレータのリファレンス

    • CTMドメイン内の負荷が軽いCTMデーモンに対応するCTMレギュレータのリファレンス

    図の場合は,ホストBのCTMレギュレータのリファレンスが返却されます。

  3. 取得したリファレンスを使用して,リモートインタフェースに定義したinvokeまたはremoveを実行します。

    図の場合は,ホストBのCTMレギュレータに対して,invokeを実行しています。リクエストは,CTMレギュレータによってCTMデーモンに送信されます。

    このタイミングで,2回目の負荷分散が実行されます。

    invoke実行時に,スケジュールポリシーに従って負荷分散が実行されます。

    図の場合は,リクエストを受け付けたホストAのCTMデーモンに振り分けられました。振り分けられたリクエストはスケジュールキューに登録されます。実行時には,あらかじめプールされていたEJBオブジェクトのリファレンスと結び付けられて,J2EEサーバの業務処理プログラムを呼び出します。このとき,異常終了したJ2EEサーバやハングアップしてタイムアウトした業務処理プログラムを呼び出すことはありません。

    注※

    remove実行時にはスケジュールポリシーは適用されません。

業務処理プログラムからの応答は,リクエストを受け付けたCTMデーモンを経由して,EJBクライアントに返却されます。