ヘッダーをスキップ

Oracle Containers for J2EE 構成および管理ガイド
10g(10.1.3.4.0)

B50866-01
目次
目次
索引
索引

戻る 次へ

10 タスク・マネージャとスレッド・プールの構成

この章では、OC4Jインスタンスに対するタスク・マネージャの構成、およびOC4JインスタンスおよびWebサイト・アプリケーションに対するスレッド・プールの構成に関するガイドラインを示します。この章の内容は次のとおりです。

OC4Jタスク・マネージャの構成

タスク・マネージャは、HTTPセッションのタイムアウトや変更済構成ファイルのチェックなど、保留タスクをすべて実行するバックグラウンド・プロセスです。デフォルトでは、1秒(1000ミリ秒)間隔で実行します。

タスク・マネージャの実行間隔は、server.xml構成ファイルの<application-server>要素のtaskmanager-granularity属性にミリ秒単位で指定されます。これは、OC4Jコンテナ・レベルのパラメータです。デフォルトは1000ミリ秒です。

たとえば、server.xmlの次のエントリは、1分(60000ミリ秒)間隔で実行するようにタスク・マネージャを構成します。

<application-server ...  taskmanager-granularity="60000" ...>

server.xmlの変更後に、OC4Jを再起動する必要があります。


注意:

このパラメータは、TaskManager MBeanのgranularity属性を使用して設定することもできます。この属性は、Application Server ControlのJMXブラウザからアクセスできます。

MBeanへのアクセスおよび使用によるOC4Jプロセスの管理の詳細は、第12章「OC4JでのMBeanの使用方法」を参照してください。 


OC4Jスレッド・プールの構成

スレッド・プールは、OC4JプロセスおよびOC4Jインスタンスにデプロイされているアプリケーションで利用および再利用するためのスレッドを作成して格納します。要求に応じて新規スレッドを作成するのではなく、既存のスレッドを再利用ことで、パフォーマンスを向上させ、JVMや基礎となるオペレーティング・システムに対する負荷を軽減します。

表10-1に、OC4J 10g(10.1.3.4.0)で使用可能なスレッド・プールをリストします。

表10-1    OC4Jスレッド・プール 
スレッド・プール  説明 

system 

OC4Jランタイムで使用します。

このプールのスレッドでは、OC4Jインスタンスにデプロイされているアプリケーションを実行できません。

このスレッド・プールの構成は変更しないでください。 

http  

HTTPおよびAJPリクエストを処理します。

rmi requestスレッド・プールが存在しない場合は、httpスレッド・プールがRMIリクエストを処理します。

rmi connectionスレッド・プールが存在しない場合は、httpスレッド・プールがRMI接続を処理します。 

jca  

リソース・アダプタからのワーク管理リクエストを処理します。

OC4Jインスタンスにデプロイされるリソース・アダプタで必要な場合、リソース・アダプタ(JMSコネクタなど)で使用されるワーカー・スレッドを格納するワーク管理スレッド・プールは、OC4Jプロセス内に作成されます。  

rmi request 

RMIリクエストを処理します。

このオプションのスレッド・プールを使用すると、スレッド・リソースの割当てをより強力に管理できます。 

rmi connection 

RMI接続を処理します。

このオプションのスレッド・プールには、RMI接続でブロック読取りを実行するスレッドが用意されています。

rmi connectionプールは、RMI接続のみでなく、RMIスレッド・リスナーおよびJMSサーバー・スレッドにも使用されます。  

カスタム 

1つ以上のアプリケーションで使用します。

アプリケーションに個別のカスタム・スレッド・プールを使用すると、スレッド・リソースの競合を減らすことができます。カスタム・スレッド・プールは、クラスタ内の一連のアプリケーションで共有できます。 

デフォルトでは、OC4Jの起動時にこれらのスレッド・プールが3つ作成されます。

各スレッド・プールでは、アイドル・スレッドは、リクエスト数が使用可能なスレッド数を超えないかぎり、新規スレッドが生成される前に再利用されます。非アクティブ状態で10分経過すると、アイドル・スレッドは自動的に破棄されます。

各スレッド・プールは、server.xmlファイルの<thread-pool>要素または<custom-thread-pool>要素によって定義されます。表10-2にこれらの要素の属性をまとめ、デフォルトの属性値を示します。

デフォルトのスレッド・プール構成を使用することも、変更することも可能です。各OC4Jインスタンスでは、systemを除く任意のスレッド・プールの属性値を変更できます。また、rmi requestrmi connectionおよび1つ以上のカスタム・スレッド・プールを追加できます。次の各項では、スレッド・プールの構成方法について説明します。

スレッド・プール構成の変更

次に示す方法で、Application Server Controlを使用するか、server.xmlファイルを編集することで、OC4Jインスタンスのスレッド・プール構成を変更できます。

Application Server Controlを使用したスレッド・プール構成の変更

Application Server Controlを使用してOC4Jインスタンスのスレッド・プール構成を変更するには、次のようにします。

  1. OC4Jホームページに移動して「管理」をクリックし、OC4Jの「管理」ページを表示します。このページには、OC4Jインスタンスに対して実行可能な様々な管理タスクがリストされた表が表示されています。

  2. 「管理」ページの「プロパティ」で、「スレッド・プール構成」を選択してOC4Jの「スレッド・プール構成」ページを表示します。

  3. このページに表示されている任意のスレッド・プールの1つ以上の属性値を変更します。

    属性値の詳細は、表10-2または「<thread-pool>」を参照してください。

  4. 「適用」をクリックします。

  5. 「クラスタ・トポロジ」ページまたはOC4JホームページからOC4Jインスタンスを再起動します。

次の「MBeansを使用したスレッド・プール構成の変更」で説明するように、Application Server ControlのMBeansを使用してスレッド・プールを構成することもできます。

MBeansを使用したスレッド・プール構成の変更

Application Server ControlのMBeansを使用してスレッド・プールの属性を変更するには、次のようにします。

  1. OC4Jホームページに移動して「管理」をクリックし、OC4Jの「管理」ページを表示します。このページには、OC4Jインスタンスに対して実行可能な様々な管理タスクがリストされた表が表示されています。

  2. 「管理」ページの「JMX」で、「システムMBeanブラウザ」を選択してOC4Jの「システムMBeanブラウザ」ページを表示します。このページには、OC4Jインスタンスによって公開されたシステムMBeanが表示されています。

  3. ページの左側にあるナビゲーション・ツリーを開いて、ThreadPoolの下にあるOC4Jインスタンスのスレッド・プールを選択します。

  4. 編集ボックスのあるスレッド・プールの任意の属性を変更します。

    属性値の詳細は、表10-2または「<thread-pool>」を参照してください。

  5. 「適用」をクリックします。

server.xmlへの<thread-pool>要素の追加

次の例では、<thread-pool>要素を使用して、server.xmlファイルにrmi requestスレッド・プールを構成します。

<thread-pool 
   name="rmi request" 
   min="50" 
   max="50" 
   queue="2560" 
   keepAlive="-1" 
   stackSize="0" 
   debug="true"/>

この構成では、OC4JによりRMIリクエストを処理する別のスレッド・プールが作成されます。スレッド・プールの属性は次のようになります。

次の例では、server.xmlに別のスレッド・プールを構成する<thread-pool>要素を示します。1つはRMIリクエストを、もう1つはRMI接続を、最後の1つはHTTPおよびAJPリクエストを処理します。

<thread-pool 
   name="rmi request" 
   min="50" 
   max="50" 
   queue="2560" 
   keepAlive="-1" 
   stackSize="0"/>

<thread-pool 
   name="rmi connection" 
   min="44" 
   max="44" 
   queue="2560" 
   keepAlive="-1" 
   stackSize="0"/>

<thread-pool 
   name="http" 
   min="40" 
   max="40" 
   queue="2560" 
   keepAlive="-1" 
   stackSize="0"/>

OC4Jインスタンスの起動時に、表10-2のデフォルトの属性値が設定された状態で、httpスレッド・プールがデフォルトで作成されます。その他のrmi-*スレッド・プールが存在しない場合、このスレッド・プールでは、HTTPおよびAJPリクエストだけでなく、RMIリクエストおよびRMI接続も処理されます。


注意:

server.xmlの変更後に、OC4Jを再起動する必要があります。 


アプリケーションのカスタム・スレッド・プールの構成

server.xmlファイルに<custom-thread-pool>要素を追加することで、OC4Jインスタンスで使用する別のカスタム・スレッド・プールをアプリケーションに作成できます。その後、アプリケーションの*-web-site.xmlファイルにある<web-site>要素のcustom-thread-pool属性のスレッド・プールを参照することにより、アプリケーションがそのカスタム・スレッド・プールを使用できるようにできます。server-xmlファイルには、複数の<custom-thread-pool>要素を指定でき、それぞれのカスタム・スレッド・プールを使用するアプリケーションを2つ以上構成できます。

server.xmlでは、<custom-thread-pool>要素は<application-server>要素のサブ要素で、nameの値が制限されていないことを除き、<thread-pool>要素と同じ属性が指定されています。次に例を示します。

<custom-thread-pool name="mypool" min="3" />

name属性は必須で、その他すべての属性はオプションです。この要素の詳細は、「<custom-thread-pool>」を参照してください。

<thread-pool>要素の詳細は、「スレッド・プール構成の変更」および「<thread-pool>」を参照してください。

*-web-site.xmlファイルの詳細は、「Webサイト構成ファイル(*-web-site.xml)の概要」を参照してください。custom-thread-pool属性は、表B-24で説明されています。

次の例では、HTTP Webサイトのdefault-web-site.xmlファイルの<web-site>要素にcustom-thread-pool属性を追加して、デフォルト以外のスレッド・プールを使用するHTTP Webサイトを構成しています。

<web-site xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/
web-site-10_0.xsd" protocol="http" port="8888" custom-thread-pool="mypool1" display-name="OC4J 10g (10.1.3) Default Web Site" schema-major-version="10" schema-minor-version="0" />

古いスレッド・プール形式からの変換

server.xml<global-thread-pool>および<work-manager-thread-pool>要素は、スレッド・プールが古い形式で構成されています。これらの要素は、OC4J 10g(10.1.3.4.0)では推奨されていません。これらの要素の属性は、表B-7および表B-23で説明されています。

server.xmlファイルに<global-thread-pool>または<work-manager-thread-pool>要素が含まれている場合、OC4J 10g(10.1.3.4.0)により古い形式の要素がserver.xmlの新しい形式に更新されます。たとえば、 server.xmlファイルに次の要素が含まれているとします。

<global-thread-pool 
   min="60" 
   max="60" 
   queue="20000" 
   keepAlive="-1" />
   
   <work-manager-thread-pool 
   min="23" 
   max="24" 
   queue="5000" 
   keepAlive="-1" />
   

OC4Jの起動後、server.xmlファイルには、<global-thread-pool>および<work-manager-thread-pool>要素ではなく、次の<thread-pool>要素が含まれています。

<thread-pool 
   name="http" 
   min="60" 
   max="60" 
   queue="20000" 
   keepAlive="-1" 
   stackSize="0" />
   
<thread-pool 
   name="jca" 
   min="23" 
   max="24" 
   queue="5000" 
   keepAlive="-1" /> 
   

表10-3に、<global-thread-pool>および<work-manager-thread-pool>の属性が、OC4J 10g(10.1.3.1.0)で導入された新しいスレッド・プールにどのようにマップされているかを示します。

表10-3    古いスレッド・プール構成の新しいスレッド・プールへのマッピング 
古いスレッド・プール属性  <thread-pool>のname属性の値  新しいスレッド・プール属性 

<global-thread-pool>minmaxqueuekeepAliveおよびdebug属性 

http 

<thread-pool>minmaxqueuekeepAliveおよびdebug属性 

<work-manager-thread-pool>minmaxqueuekeepAliveおよびdebug属性 

jca 

<thread-pool>minmaxqueuekeepAliveおよびdebug属性 

<global-thread-pool>cx-mincx-maxcx-queuecx-keepAliveおよびcx-debug属性 

rmi request 

<thread-pool>minmaxqueuekeepAliveおよびdebug属性 

<global-thread-pool>rmiRequest-minrmiRequest-maxrmiRequest-queuermiRequest-keepAliveおよびrmiRequest-debug属性 

rmi connection 

<thread-pool>minmaxqueuekeepAliveおよびdebug属性 

たとえば、OC4Jにより、次の<global-thread-pool>要素から新しい<thread-pool>要素が生成されます。

<global-thread-pool
   keepAlive="-1"
   debug="false"
   cx-keepAlive="-1"
   cx-debug="false"
   rmiRequest-keepAlive="-1"
   rmiRequest-debug="false"
   min="40"
   max="40"
   queue="2560"
   cx-min="44"
   cx-max="44"
   cx-queue="2560"
   rmiRequest-min="50"
   rmiRequest-max="50"
   rmiRequest-queue="2560"/>

<thread-pool>要素の等価は次のとおりです。

<thread-pool 
   name="rmi request" 
   min="50" 
   max="50" 
   queue="2560" 
   keepAlive="-1" 
   stackSize="0"/>

<thread-pool 
   name="rmi connection" 
   min="44" 
   max="44" 
   queue="2560" 
   keepAlive="-1" 
   stackSize="0"/>

<thread-pool 
   name="http" 
   min="40" 
   max="40" 
   queue="2560" 
   keepAlive="-1" 
   stackSize="0"/>


戻る 次へ
Oracle
Copyright © 2006, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引