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

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

2.7.3 スレッドTSCユーザオブジェクト

サーバアプリケーションプロセスは,スレッドとTSCユーザオブジェクトとで構成されます。その構成の例を次の図に示します。

図2-16 スレッドとTSCユーザオブジェクトの構成

[図データ]

サーバアプリケーションプロセス内では,サービスを提供する複数のオブジェクトが動作します。これらの,アプリケーションとして動作するオブジェクトをTSCユーザオブジェクトといいます。また,サーバアプリケーションごとに,TSCルートアクセプタのオブジェクトを持ちます。TSCルートアクセプタは,TSCユーザアクセプタを管理するオブジェクトです。TSCユーザアクセプタは,TSCユーザオブジェクトにリクエストを割り振るオブジェクトです。

<この項の構成>
(1) ユーザ定義IDLインタフェースとコード中の登録処理部分の例
(2) マルチスレッド環境での処理

(1) ユーザ定義IDLインタフェースとコード中の登録処理部分の例

サーバアプリケーションのユーザ定義IDLインタフェースの例,および対応するコード中の登録処理部分の例を次に示します。

TSCRootAcceptorクラスのactivate()メソッドを発行してTSCルートアクセプタをactive状態にするときに,TSCAcceptorクラスは,TSCユーザオブジェクトのインスタンスを生成します。このとき,登録されたTSCFactoryObjectを基に,ユーザ定義IDLインタフェースのinterface句ごとに生成します。

OTMは,インスタンスとスレッドを対応づけて制御するために,TSCRootAcceptorクラスのsetParallelCount()メソッド,またはサーバアプリケーションの開始時に指定する-TSCParallelCountオプションで指定するパラレルカウントを使用します。また,TSCユーザオブジェクトのインスタンスは作成されたスレッド上で常に動作するよう制御されます。

(2) マルチスレッド環境での処理

マルチスレッド環境でサーバアプリケーションを運用する場合のプロセスの処理(スレッドの並行実行)の仕組みを次の図に示します。

図2-17 マルチスレッド環境での処理の仕組み

[図データ]

図2-17の場合,TSCRootAcceptorクラスのsetParallelCount()メソッド,またはサーバアプリケーションの開始時に指定する-TSCParallelCountオプションには"4"が設定されています。

つまり,TSCルートアクセプタに登録されているインタフェースが幾つあっても,1スレッド上で同時に動作するインスタンスは,各インタフェースのTSCユーザオブジェクトの一つだけです。