トランザクショナル分散オブジェクト基盤 TPBroker Object Transaction Monitor ユーザーズガイド

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

2.7.5 リクエストの振り分け

サーバアプリケーションは,リクエストの振り分けをします。リクエストを振り分ける方法には,TSCアクセプタ名称を指定する方法と指定しない方法があります。

<この項の構成>
(1) TSCアクセプタ名称を指定しないリクエストの振り分け
(2) TSCアクセプタ名称を指定するリクエストの振り分け
(3) セション呼び出し時のリクエストの振り分け

(1) TSCアクセプタ名称を指定しないリクエストの振り分け

TSCアクセプタ名称を指定しない場合のリクエストの振り分けを次の図に示します。

図2-20 TSCアクセプタ名称を指定しない場合のリクエストの振り分け

[図データ]

注※1
Aのインタフェースを持つインスタンスに対する1回目のリクエストです。

注※2
Aのインタフェースを持つインスタンスに対する2回目のリクエストです。

TSCユーザプロキシは,クライアントアプリケーションがTSCユーザオブジェクトを呼び出すための代理オブジェクトです。

使用するTSCユーザプロキシは,1回目,2回目とも同じオブジェクトを使用します。1回目のリクエストでは,スレッド3上で動作するインスタンスを実行してクライアントアプリケーションへ返します。続いてAのインタフェースに対して2回目のリクエストが実行された場合,スレッド2が実行されます。つまり,同じインタフェースに対してリクエストした場合でも,同じスレッド上で動作するという保証はありません。また,同じインタフェースを持つほかのサーバアプリケーションプロセスがある場合,複数のリクエストをすると,OTMの負荷状況に応じて処理するサーバアプリケーションプロセスが振り分けられます。そのため,リクエストを処理するサーバアプリケーションプロセスおよびスレッドが常に同じになるという保証はありません。

(2) TSCアクセプタ名称を指定するリクエストの振り分け

TSCユーザアクセプタの生成時にTSCアクセプタ名称を指定できます。同じインタフェースでもTSCアクセプタ名称を使用することによって,異なるインタフェースとして扱うことができます。

TSCアクセプタ名称を指定する場合のリクエストの振り分けを次の図に示します。

図2-21 TSCアクセプタ名称を指定する場合のリクエストの振り分け

[図データ]

この例では,サーバアプリケーションプロセス1にあるAのインタフェースを担当するTSCアクセプタ名称を"Z"とし,サーバアプリケーションプロセス2にあるAのインタフェースを担当するTSCユーザアクセプタの名称はないものとします。

(3) セション呼び出し時のリクエストの振り分け

セション呼び出し機能を使用する場合のリクエストの振り分けを次の図に示します。

図2-22 セション呼び出し機能を使用する場合のリクエストの振り分け

[図データ]

  1. Aのインタフェースを持つインスタンスのセション呼び出し開始要求。
  2. Aのインタフェースを持つインスタンスに対するリクエスト。
    クライアントアプリケーション1のすべてのリクエストを同じインスタンスに送信します。
  3. Aのインタフェースを持つインスタンスのセション呼び出し終了要求。
  4. Cのインタフェースを持つインスタンスのセション呼び出し開始要求。
  5. Cのインタフェースを持つインスタンスに対するリクエスト。
    クライアントアプリケーション2のすべてのリクエストを同じインスタンスに送信します。
  6. Cのインタフェースを持つインスタンスのセション呼び出し終了要求。

注※
セション呼び出し用プロキシを継承したTSCユーザプロキシです。