4.8.1 MAXDISPATCHTHREADS

MAXDISPATCHTHREADSパラメータは、各サーバー・プロセスで生成される、同時に実行できるディスパッチ・スレッドの最大数を決定します。このパラメータを指定する際には、次の事項を考慮してください。

  • MAXDISPATCHTHREADSの値によって、スレッド・プールが受信するリクエストを格納するために拡大できる最大サイズが決定されます。
  • MAXDISPATCHTHREADSのデフォルト値は1です。1より大きい値を指定した場合、特別なディスパッチ・スレッドが作成および使用されます。このディスパッチャ・スレッドは、スレッド・プールの最大サイズを決定するスレッド数には、含まれていません。
  • MAXDISPATCHTHREADSパラメータの値に1を指定すると、サーバー・アプリケーションがシングル・スレッド・サーバーとして構成されることを示します。1より大きい値を指定すると、サーバー・アプリケーションがマルチスレッド・サーバーとして構成されることを示します。
  • MAXDISPATCHTHREADSパラメータに指定する値は、MINDISPATCHTHREADSパラメータに指定する値を下回っていてはいけません。
  • オペレーティング・システム・リソースにより、1つのプロセスで作成できるスレッドの最大数は制限されます。MAXDISPATCHTHREADSは、その制限からアプリケーションが必要とするアプリケーション管理スレッドの数を引いた値よりも小さくする必要があります。

MAXDISPATCHTHREADSパラメータの値は、他のパラメータにも影響を与えます。たとえば、MAXACCESSORSパラメータはOracle Tuxedoシステムへの同時アクセス数を制御し、各スレッドは1つのアクセッサとしてカウントされます。マルチスレッド・サーバーのアプリケーションの場合、各サーバーの実行が構成されているシステム管理のスレッドの数を考慮しておく必要があります。システム管理のスレッドとは、アプリケーションで開始され管理されるスレッドに対して、Oracle Tuxedoソフトウェアで開始され管理されるスレッドです。内部ではOracle Tuxedoが、利用可能なシステム管理のスレッドのプールを管理しています。クライアント・リクエストが受信されると、スレッド・プールから利用可能なシステム管理のスレッドがそのリクエストを実行するように、スケジューリングされています。リクエストが完了すると、システム管理のスレッドは利用可能なスレッドのプールに返されます。

たとえば、システム内に4つのマルチスレッド・サーバーがあり、各サーバーが50個のシステム管理のスレッドを実行するように構成されている場合、これらのサーバーにおけるアクセサ要件は、次のように計算される、アクセサ数の合計となります:

50 + 50 + 50 + 50 = 200 accessors