10.2.5.2.1 サーバー・ディスパッチ・スレッドの使用方法
クライアントのサービス・リクエストへのレスポンスとして、サーバー・ディスパッチャは各種のクライアント・リクエストに同時に割り当てることができる1つのサーバーに、設定可能な最大数まで複数のスレッドを生成します。サーバーがtpinit()
を呼び出すことはできません。
各ディスパッチ・スレッドは、別々のコンテキストと関連付けられています。この機能は会話型サーバーとRPCサーバーの両方で有用です。特に、会話型サーバーではこの機能を利用できないと、ほかの会話接続がサービスを待っている間、クライアント側の会話をアイドル状態で待つことになります。
この機能は、UBBCONFIG(5)ファイルのSERVERS
セクションとTM_MIB(5)の次のパラメータで制御されます。
UBBCONFIGパラメータ | MIBパラメータ | デフォルト |
---|---|---|
MINDISPATCHTHREADS
|
TA_MINDISPATCHTHREADS
|
0 |
MAXDISPATCHTHREADS
|
TA_MAXDISPATCHTHREADS
|
1 |
THREADSTACKSIZE
|
TA_THREADSTACKSIZE
|
0 (オペレーティング・システムのデフォルト値) |
- 各ディスパッチ・スレッドは、
THREADSTACKSIZE
またはTA_THREADSTACKSIZE
で指定されるスタック・サイズで生成されます。このパラメータが指定されていない場合、または0の場合、オペレーティング・システムのデフォルト値が使用されます。オペレーティング・システムのデフォルト値が小さすぎてOracle Tuxedoシステムで使用できない場合、その値より大きなデフォルト値が使用されます。 - このパラメータが指定されていない(0)の場合、あるいはオペレーティング・システムで
THREADSTACKSIZE
設定がサポートされていない場合は、オペレーティング・システムのデフォルト値が使用されます。 -
MINDISPATCHTHREADS
またはTA_MINDISPATCHTHREADS
は、MAXDISPATCHTHREADS
またはTA_MAXDISPATCHTHREADS
以下でなければなりません。 MAXDISPATCHTHREADS
またはTA_MAXDISPATCHTHREADS
が1の場合、ディスパッチャ・スレッドとサービス関数スレッドは同じスレッドです。- システムは最初に
MINDISPATCHTHREADS
またはTA_MINDISPATCHTHREADS
のサーバー・スレッドを起動します。 - システムが
MAXDISPATCHTHREADS
またはTA_MAXDISPATCHTHREADS
を超えるサーバー・スレッドを起動することはありません。
親トピック: 作業フェーズ