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を超えるサーバー・スレッドを起動することはありません。