Sun GlassFish Enterprise Server v3 管理ガイド

スレッドプールの構成

アプリケーションからの要求用に確保するスレッドの最小数と最大数を指定できます。スレッドプールはこれら 2 つの値の間で動的に調整されます。

ここでは、次のテーマを取り上げます。

Procedureスレッドプールを作成する

スレッドプールを作成するには、リモートモードで create-threadpool サブコマンドを使用します。

サーバーは、指定された最小スレッドプールサイズに従って、アプリケーション要求用に確保するスレッドを割り当てます。その数は、指定された最大スレッドプールサイズまで増加できます。プロセスで使用可能なスレッドの数を増やすと、プロセスが同時に応答できるアプリケーション要求数が多くなります。

1 つのリソースアダプタまたはアプリケーションが Enterprise Server のすべてのスレッドを占有すると、スレッド不足が発生します。この状況は、Enterprise Server のスレッドを複数のスレッドプールに分割することで回避できます。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. create-threadpool(1) サブコマンドを使用して、新しいスレッドプールを作成します。

    サブコマンドのオプションについては、このサブコマンドのマニュアルページを参照してください。

  3. 変更内容を適用するために、Enterprise Server を再起動します。

    「ドメインの再起動」を参照してください。


    注 –

    Web コンテナによって使用されるスレッドプールでは、再起動が必要ない場合もあります。



例 5–1 スレッドプールの作成

この例では、threadpool-l を作成します。


asadmin> create-threadpool --maxthreadpoolsize 100 
      --minthreadpoolsize 20 --idletimeout 2 --workqueues 100 threadpool-1
Command create-threadpool executed successfully

参照

コマンド行に asadmin help create-threadpool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

Procedureスレッドプールを一覧表示する

既存のスレッドプールを一覧表示するには、リモートモードで list-threadpools サブコマンドを使用します。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. list-threadpools(1) サブコマンドを使用して、既存のスレッドプールを一覧表示します。


例 5–2 スレッドプールの一覧表示

この例では、既存のスレッドプールを一覧表示します。


asadmin> list-threadpools
threadpool-1
Command list-threadpools executed successfully

参照

コマンド行に asadmin help list-threadpools と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

Procedureスレッドプールを更新する

set サブコマンドを使用して、指定したスレッドプールの値を更新します。

  1. list-threadpools(1) サブコマンドを使用して、既存のスレッドプールを一覧表示します。

  2. set(1) サブコマンドを使用して、スレッドプールの値を変更します。

    スレッドプールはドット表記名で識別されます。

  3. 変更内容を適用するために、Enterprise Server を再起動します。

    「ドメインの再起動」を参照してください。


    注 –

    Web コンテナによって使用されるスレッドプールでは、再起動が必要ない場合もあります。



例 5–3 スレッドプールの更新

この例では、max-thread-pool-size を元の値から 8 に変更します。


asadmin> set server.thread-pools.thread-pool.http-thread-pool.max-thread-pool-size=8
Command set executed successfully

参照

コマンド行に asadmin help set と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

Procedureスレッドプールを削除する

既存のスレッドプールを削除するには、リモートモードで delete-threadpool サブコマンドを使用します。スレッドプールがネットワークリスナーによって参照されている場合、そのプールの削除は失敗します。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. list-threadpools(1) サブコマンドを使用して、既存のスレッドプールを一覧表示します。

  3. delete-threadpool(1) サブコマンドを使用して、指定したスレッドプールを削除します。

  4. 変更内容を適用するために、Enterprise Server を再起動します。

    「ドメインの再起動」を参照してください。


    注 –

    Web コンテナによって使用されるスレッドプールでは、再起動が必要ない場合もあります。



例 5–4 スレッドプールの削除

この例では、threadpool-1 を削除します。


asadmin> delete-threadpool threadpool-1
Command delete-threadpool executed successfully

参照

コマンド行に asadmin help delete-threadpool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。