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を超えるサーバー・スレッドを起動することはありません。
親トピック: 作業フェーズ