ヘッダーをスキップ
Oracle Identity Managerベスト・プラクティス・ガイド
リリース9.1.0
E05901-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

4 アプリケーション・サーバーのパフォーマンスのチューニング

この章では、Oracle Identity Managerリリース9.1.0用のアプリケーション・サーバーをアップグレードしパフォーマンスを向上させる方法を説明します。この章では、次の項目について説明します。


注意:

この項では、すべてのチューニング・パラメータの推奨および値を参考のみの目的で示しています。必要性、アプリケーション使用方法のパターン、負荷およびハードウェア仕様に基づいて、値を変更してください。

BEA WebLogic Serverバージョン8.1

BEA WebLogic Serverバージョン8.1にデプロイされたOracle Identity Managerに対する固有の推奨は、次のとおりです。


注意:

いずれかの設定を変更した場合、サーバーを再起動する必要があります。

JVMメモリー設定

非クラスタ環境およびクラスタ環境で、JVMメモリー設定を変更する必要があります。

非クラスタ環境でJVMメモリー設定を増やしてJavaオプションを指定するには、次のようにします。

  1. WebLogic Server管理コンソールを使用して、アプリケーション・サーバーを正常に停止します。

  2. BEA_HOME\user_projects\domains\DOMAIN_NAMEにナビゲートします。

    たとえば、C:\bea\user_projects\domains\mydomainです。

  3. テキスト・エディタで、次のWebLogic開始スクリプト・ファイルを開きます。

    Microsoft Windowsの場合:

    startWebLogic.cmd

    UNIXの場合:

    startWebLogic.sh

  4. 次のようにスクリプトを編集し、メモリー・オプションを指定します。

    Microsoft Windowsの場合:

    次で始まる行を検索します。

    %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%
    

    その前に、次のいずれかの行を追加します。

    Sun JVMを使用している場合、次を追加します。

    set MEM_ARGS=-Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m
    

    BEA JRockit JVMを使用している場合、次を追加します。

    set MEM_ARGS=-Xms1280m -Xmx1280m
    

    UNIXの場合:

    次で始まる行を検索します。

    $JAVA_HOME/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}
    

    その前に、次のいずれかの行を追加します。

    Sun JVMを使用している場合、次を追加します。

    MEM_ARGS="-Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m"
    export MEM_ARGS
    

    BEA JRockit JVMを使用している場合、次を追加します。

    MEM_ARGS="-Xms1280m -Xmx1280m"
    export MEM_ARGS
    
  5. BEA JRockit JVMを使用している場合、-XnoOptオプションを既存のJAVA_OPTIONSに追加します。このオプションにより、適応最適化はオフになります。このオプションは、Oracle Identity Managerの安定した操作のために必要です。

    Microsoft Windowsの場合:

    次で始まる行を検索します。

    %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%
    

    その前に、次の行を追加します。

    set JAVA_OPTIONS=%JAVA_OPTIONS% -XnoOpt
    

    UNIXの場合:

    次で始まる行を検索します。

    $JAVA_HOME/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}
    

    その前に、次の行を追加します。

    JAVA_OPTIONS="$JAVA_OPTIONS -XnoOpt"
    export JAVA_OPTIONS
    
  6. ファイルを保存して閉じます。

クラスタ環境でJVMメモリー設定を増やしてJavaオプションを指定するには、次のようにします。


注意:

xlStartManagedServerスクリプトを使用して、WebLogicで管理されるサーバーを起動または停止する場合、前の項で説明したようにサーバー起動スクリプトでメモリー設定を指定します。

WebLogic Server管理コンソール(「Remote Start」タブ)を使用してサーバーを起動または停止する場合、次の手順を実行します。


  1. WebLogic Server管理コンソールを開きます。

  2. サーバー名をクリックします。たとえば、ドメイン名name/Servers下の、xlManagedServer_1などです。

  3. 「Remote Start」タブをクリックし、次のようにします。

    1. 「Java Home」フィールドに、Sun SDKまたはJRockit SDKディレクトリのパスを入力します。たとえば、C:\bea\jdk142_15と入力します。

    2. 「BEA_HOME」フィールドを設定します。たとえば、BEA WebLogic ServerがCドライブにインストールされている場合、「BEA_HOME」フィールドをC:\beaに設定します。

    3. 「Arguments」フィールドに次を追加して、メモリーを増やします。

      Sun SDKの場合:

      -Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m
      

      JRockit SDKの場合:

      -Xms1280m -Xmx1280m -XnoOpt
      

      注意:

      すべての管理サーバーでこの手順を実行する必要があります。

  4. 「Remote Start」タブの「Apply」をクリックして、設定を保存します。

JDBC接続プール

xlConnectionPoolは、JMSの操作のためにWebLogic JMSで使用されます。XlXAConnectionPoolは、それ以外のすべての目的でOracle Identity Managerで使用されます。JDBC接続プールの容量を増やすには、次の手順を実行します。

  1. WebLogic Server管理コンソールを開きます。

  2. 「Servers」「JDBC」「Connection Pools」を順にクリックします。

    xlConnectionPoolの場合:

    「xlConnection Pool」をクリックして「Connections」タブを選択し、次のように設定します。

    初期容量 = 30

    最大容量 = 50

    xlXAConnectionPoolの場合:

    「xlXAConnection Pool」をクリックして「Connections」タブを選択し、次のように設定します。

    初期容量 = 30

    最大容量 = 50

  3. 「Apply」「Save」を順にクリックします。

メッセージドリブンBeanの数

Oracle Identity Managerでは、メッセージドリブンBean(MDB)を使用して、リコンシリエーション、監査、リクエストおよびアテステーションなどのすべてのオフライン・アクティビティを処理します。デフォルトのMDBの数は、重い負荷に対して十分ではありません。BEA WebLogic Serverは、すべてのタイプのMDBで共有される実行キューを使用します。

次のメソッドのいずれかを使用すると、MDBの数を増やすことができます。

スレッド件数の増加:

MDBスレッド数 = (スレッド件数)/2+1

デフォルトでは、本番モードのWebLogicインストールのスレッド件数は25です。そのため、MDBは最大13のスレッドを使用できますが、これはすべてのタイプのMDBで共有されます。スレッド件数を増やすには、次の手順を実行します。

  1. WebLogic管理コンソールにログインします。

  2. Oracle Identity Managerがデプロイされているサーバーで「View Execute Queues」を右クリックします。

  3. 「weblogic.kernel.Default」をクリックして、「Thread Count」に適切な値を設定します。


注意:

増加したスレッド数がCPU容量でサポートされていることを確認してください。

MDBの数の増加に応じて、JDBC接続プールの増加が必要な場合があります。


各MDBに対する別の実行キューの使用:

アプリケーション使用方法に応じ、各MDBに対して別のキューを作成できます。たとえば、大規模なリコンシリエーション・ワークフローでは、リコンシリエーションと監査に対して別のキューを作成し、dispatch-policy要素を使用して対応するMDBに割り当てます。次に例を示します。

  1. WebLogic管理コンソールで、実行キューを作成します(たとえば、OIMReconQueue)。実行キューの作成方法の詳細は、BEA WebLogicのドキュメントを参照してください。

  2. dispatch-policy要素を使用して、OIM_HOME\DDTemplates\BO\weblogic-ejb-jar.xmlを変更します。次のようにします。

    1. weblogic-ejb-jar.xmlファイルで次のxmlセグメントを検索します。

      weblogic-enterprise-bean
      <ejb-name>ReconMessageHandlerMDB</ejb-name>
      <message-driven-descriptor>
      …
      </message-driven-descriptor>
      
    2. </message-driven-descriptor>の末尾に、次の行を追加します。

      <dispatch-policy>OIMReconQueue</dispatch-policy>
      
  3. 値の変更後、ディレクトリをOIM_HOME/setupに変更し、次のスクリプトを実行します。

    Microsoft Windowsの場合:

    patch_weblogic.cmd weblogic_admin_password oim_schema_password

    UNIXの場合:

    patch_weblogic.sh weblogic_admin_password oim_schema_password

  4. パッチの終了後、アプリケーション・サーバーを再起動します。


注意:

詳細は、BEA WebLogicのドキュメントを参照してください。また、スレッドの増加がCPU容量でサポートされていることを確認してください。

UNIX用のオープン・ファイル記述子数の変更(オプション)

WebLogicでは、<WL_HOME>/common/bin/commEnv.shスクリプト内のオープン・ファイル記述子の数は1024に制限されています。大量の同時ユーザーが発生すると、WebLogicでは「TOO MANY OPEN FILES」例外がスローされる場合があります。このエラーが発生したら、制限を1024より大きくする必要があります。オペレーティング・システムが増加したオープン・ファイルの数を処理できることを確認してください。

IBM WebSphere Application Serverバージョン6.1

IBM WebSphere Application Serverバージョン6.1にデプロイされたOracle Identity Managerに対する固有の推奨は、次のとおりです。


注意:

いずれかの設定を変更した場合、サーバーを再起動する必要があります。

JVMメモリー設定

非クラスタ環境でJVMメモリー設定を増やすには、次の手順を実行します。

  1. 次のURLを使用して、WebSphere管理コンソールにログインします。

    http://WEBSPHERE_HOSTNAME:WEBSPHERE_ADMIN_PORT /admin
    
  2. 「Servers」「Application Servers」を順に選択します。

  3. サーバー名を選択します。

  4. 「Server Infrastructure」から「Java and Process Management」をクリックします。

  5. 「Process Definition」を選択します。

  6. 「Additional Properties」から「Java Virtual Machine」をクリックし、次の値を入力します。

    最小ヒープ・サイズ = 1280

    最大ヒープ・サイズ = 1280

    汎用JVM引数 = -Xjit:disableLocalVP,disableGlobalVP

  7. 「OK」をクリックします。

  8. 「Save」をクリックして設定をコミットします。


注意:

クラスタ環境の場合、前述した手順をクラスタ内の各サーバー上で実行し、設定を変更する必要があります。

JDBC接続プール

xlConnectionPoolは、JMSの操作のためにWebLogic JMSで使用されます。XlXAConnectionPoolは、それ以外のすべての目的でOracle Identity Managerで使用されます。JDBC接続プールの容量を増やすには、次の手順を実行します。

  1. WebSphere管理コンソールにログインします。

  2. 「Resources」「JDBC」「Data Sources」「Non XA DataSource」を順に選択します。「Additional」プロパティ下の「Connection pool」プロパティを選択します。次の値を入力します。

    最小接続数 = 10

    最大接続数 = 50

  3. 「OK」「Save」を順にクリックします。

  4. 「Resources」「JDBC」「Data Sources」「XA DataSource」を順に選択します。「Additional」プロパティ下の「Connection pool」プロパティを選択します。次の値を入力します。

    最小接続数 = 30

    最大接続数 = 50

  5. 「OK」「Save」を順にクリックします。

メッセージドリブンBeanの数

Oracle Identity Managerでは、MDBを使用して、リコンシリエーション、監査、リクエストおよびアテステーションなどのすべてのオフライン・アクティビティを処理します。デフォルトのMDBの数は、重い負荷に対して十分ではありません。


注意:

インストールで使用されているJMSに応じ、適切な手順を選択してください。

デフォルトのJMSメッセージに対するMDBの数を増やすには、次の手順を実行します。

  1. 「Resources」「Resource Adapters」「J2C activation specifications」を順にクリックします。

  2. 各キュー仕様に対して、次のようにします。

    1. 「Additional Properties」で「J2C activation specification custom properties」をクリックします。

    2. 1ページ目で、「maxConcurrency」リンクを選択して「Value」を20に設定します。

    3. 「OK」「Save」を順にクリックします。

    4. 矢印をクリックして、2ページ目に進みます。

    5. 2ページ目で、「maxConcurrency」リンクを選択して「Value」を20に設定します。

    6. 「OK」「Save」を順にクリックします。


    注意:

    MDBの数の増加に応じて、JDBC接続プールの増加が必要な場合があります。

デフォルトではないJMSメッセージに対するMDBの数を増やすには、対応するリスナー・ポートに対する「Maximum Sessions」の値を大きくします。たとえば、リコンシリエーションに対してMDBを使用する場合、リコンシリエーションで使用するリスナー・ポートを選択して「Maximum Sessions」の値を大きくします。

スレッド・プール

サーバー・スレッド・プールを増やすには、次の手順を実行します。

  1. WebSphere管理コンソールにログインします。

  2. 「Application Server」、Oracle Identity Managerがデプロイされているサーバー、「Thread Pools」を順にクリックします。

  3. 「Default」をクリックして、「Minimum Size」および「Maximum Size」の値を設定します。たとえば、「Minimum Size」に20を入力し、「Maximum Size」に75を入力します。

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


    注意:

    クラスタ環境の場合、前述した手順をクラスタ内の各サーバー上で実行し、設定を変更する必要があります。

    また、スレッドの増加がCPU容量でサポートされていることを確認してください。


JBoss Application Serverバージョン4.0.3 SP1

JBoss Application Serverバージョン4.0.3 SP1にデプロイされたOracle Identity Managerに対する固有の推奨は、次のとおりです。


注意:

いずれかの設定を変更した場合、サーバーを再起動する必要があります。

JVMメモリー設定

使用する環境のオペレーティング・システムに応じて、次の手順を実行します。

Microsoft Windowsの場合:

  1. JBOSS_HOME\bin\run.batファイルをテキスト・エディタで開きます。

  2. 次の行を検索します。

    set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m
    
  3. メモリー設定を、次の推奨される値に変更します。

    set JAVA_OPTS=%JAVA_OPTS% -Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m
    
  4. run.batファイルを保存して閉じます。

UNIXの場合:

  1. JBOSS_HOME/bin/run.confファイルをテキスト・エディタで開きます。

  2. 次の行を検索します。

    JAVA_OPTS="-server -Xms128m -Xmx128m"
    
  3. メモリー設定を、次の推奨される値に変更します。

    JAVA_OPTS="-server -Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m"
    
  4. run.confファイルを保存して閉じます。


注意:

クラスタ環境の場合、クラスタの各ノードで手順を繰り返します。

JDBC接続プール

JDBC接続プールを変更するには、JBOSS_HOME/server/default/deploy/xell-ds.xmlファイルを開き、次のようにします。


注意:

JBoss Application Server上のOracle Identity Managerのクラスタ・インストールでは、xell-ds.xmlファイルはJBOSS_HOME/server/all/farmにあります。

  1. jdbc/xlDSプールで、行</local-tx-datasource>の前に次を挿入します。

    <min-pool-size>10</min-pool-size>
    <max-pool-size>50</max-pool-size>
    <blocking-timeout-millis>15000</blocking-timeout-millis>
    <idle-timeout-minutes>15</idle-timeout-minutes>
    
  2. jdbc/xlXADSプールで、行</xa-datasource>の前に次を挿入します。

    <min-pool-size>30</min-pool-size>
    <max-pool-size>50</max-pool-size>
    <blocking-timeout-millis>15000</blocking-timeout-millis>
    <idle-timeout-minutes>15</idle-timeout-minutes
    

スレッド・プール

スレッドの数を増やすには、次の手順を実行します。

  1. JBOSS_HOME/server/default/conf/jboss-service.xmlを開きます。


    注意:

    JBoss Application Server上のOracle Identity Managerのクラスタ・インストールでは、jboss-service.xmlファイルはJBOSS_HOME/server/all/confにあります。

  2. 次のように最大プール・サイズを設定して、ファイルを保存します。

    <mbean code="org.jboss.util.threadpool.BasicThreadPool" name="jboss.system:service=ThreadPool">
    ...
    <attribute name="MaximumPoolSize">50</attribute>
    ...
    </mbean>
    

注意:

スレッドの数の増加に応じて、JDBC接続プールの増加が必要な場合があります。

また、スレッドの増加がCPU容量でサポートされていることを確認してください。


JMSプール・サイズ

JMSプール・サイズを大きくするには、次の手順を実行します。

  1. JBOSS_HOME/server/default/deploy/jms/jms-ds.xmlファイルをテキスト・エディタで開きます。


    注意:

    JBoss Application Server上のOracle Identity Managerのクラスタ・インストールでは、JBOSS_HOME/server/all/deploy/jms/hajndi-jms-ds.xmlファイルをテキスト・エディタで開きます。

  2. 次のように最大プール・サイズを設定して、ファイルを保存します。

    <tx-connection-factory>...<max-pool-size>20</max-pool-size>...</tx-connection-factory>
    

注意:

JMSプール・サイズの増加に応じて、JDBC接続プールの増加が必要な場合があります。

メッセージドリブンBeanおよびDQL再試行の数

MDBのサイズを大きくするには、次の手順を実行します。

  1. JBOSS_HOME/server/default/conf/standardjboss.xmlファイルをテキスト・エディタで開きます。


    注意:

    JBoss Application Server上のOracle Identity Managerのクラスタ・インストールでは、JBOSS_HOME/server/all/conf/standardjboss.xmlファイルをテキスト・エディタで開きます。

  2. 次のxmlフラグメントを検索します。

    <invoker-proxy-binding>
    <name> message-driven-bean<name>
    ...
    <MinimumSize>4</MinimumSize>
    <MaximumSize>20</MaximumSize>
    ...
    
  3. このフラグメントに、次のように追加します。

    <DLQConfig>
    ...
    <MaxTimesRedelivered>5</MaxTimesRedelivered>
    ...
    </invoker-proxy-binding>
    

    前述した属性を追加すると、障害が発生した場合、JMSメッセージはこの属性で定義される回数再配信されます。


注意:

これらの変更に応じて、JDBC接続プールの増加が必要な場合があります。

デプロイメント・スキャン

デプロイ・スキャンを無効にするには、次の手順を実行します。

  1. JBOSS_HOME/server/default/conf/jboss-service.xmlファイルをテキスト・エディタで開きます。


    注意:

    JBoss Application Server上のOracle Identity Managerのクラスタ・インストールでは、JBOSS_HOME/server/all/conf/jboss-service.xmlファイルをテキスト・エディタで開きます。

  2. xmlフラグメントを検索し、次のように編集します。

    <!-- An mbean for hot deployment/undeployment of archives.
    -->
    <mbean code="org.jboss.deployment.scanner.URLDeploymentScanner"
    name="jboss.deployment:type=DeploymentScanner,flavor=URL">
    ...
    
    <attribute name="ScanPeriod">5000</attribute>
    <attribute name="ScanEnabled">False</attribute>
    ...
    </mbean>
    

Oracle Application Serverリリース10.1.3.x

Oracle Application Server10.1.3.xにデプロイされたOracle Identity Managerに対する固有の推奨は、次のとおりです。


注意:

いずれかの設定を変更した場合、サーバーを再起動する必要があります。

Oracle Application ServerをアップグレードしてOracle Application Serverにパッチを適用する方法は、MetaLink Note 553266.1を参照してください。


JVMメモリー設定

Oracle Application Serverヒープ・サイズを大きくするには、次の手順を実行します。

  1. ORACLE_HOME/opmn/conf/opmn.xmlファイルをテキスト・エディタで開きます。

  2. 次のメモリー設定を検索します。

    -XX:MaxPermSize=128M -ms512M -mx1024M
    
  3. メモリー設定を次のように変更します。

    -ms1280m -mx1280m -XX:PermSize=128m -XX:MaxPermSize=256m
    
  4. ORACLE_HOME/opmn/conf/opmn.xmlファイルを保存して閉じます。


注意:

クラスタ・インストールの場合、Oracle Identity ManagerがデプロイされているすべてのOracle Application Serverインスタンスで手順を繰り返します。

JDBC接続プール

Oracle Application Serverコントロールを使用して接続プールのパラメータを変更しないでください。これは、ユーザーがデータベース側でロックされる原因になります。接続プールの変更は、次のようにして構成ファイル内で実行することをお薦めします。

  1. Oracle Identity ManagerがデプロイされているすべてのOracle Application Serverインスタンスを停止します。

  2. ORACLE_HOME/j2ee/INSTANCE_NAME/config/data-sources.xmlファイルをテキスト・エディタで開きます。

    1. xlConnectionPoolの場合、最小および最大接続プールの値を次のように設定します。

      min-connections="10"

      max-connections="50"

    2. xlXAConnectionPoolの場合、最小および最大接続プールの値を次のように設定します。

      min-connections="30"

      max-connections="100"


注意:

クラスタ・インストールの場合、Oracle Identity ManagerがデプロイされているすべてのOracle Application Serverインスタンスで手順を繰り返します。

メッセージドリブンBeanの数

Oracle Identity Managerでは、MDBを使用して、リコンシリエーション、監査、リクエストおよびアテステーションなどのすべてのオフライン・アクティビティを処理します。デフォルトのMDBの数は、重い負荷に対して十分ではありません。MDBの数を増やすには、次の手順を実行します。

  1. 次のようにMDBの数を変更します。

    ファイルベースのJMS永続性(デフォルトのOIMインストール)の場合:

    1. OIM_HOME/DDTemplates/BO/orion-ejb-jar.xmlを開きます。

    2. すべてのMDBのlistener-threads値を、20に変更します。これは、各キューに対するMDBの数を意味します。

    データベース/AQベースのJMS永続性の場合:

    1. OIM_HOME/DDTemplates/BO/orion-ejb-jar.xmlを開きます。

    2. すべてのMDBのReceiver-Threads値を、20に変更します。これは、各キューに対するMDBの数を意味します。

  2. 値の変更後、ディレクトリをOIM_HOME/setupに変更し、次のスクリプトを実行します。

    Microsoft Windowsの場合:

    patch_oc4j.cmd oc4j_admin_password oim_schema_password

    UNIXの場合:

    patch_oc4j.sh oc4j_admin_password oim_schema_password

  3. パッチの終了後、アプリケーション・サーバーを再起動します。これにより、変更された最新のMDBの値でアプリケーションが再ビルドされます。


注意:

クラスタ・インストールの場合、Oracle Identity ManagerがデプロイされているすべてのOracle Application Serverインスタンスで手順を繰り返します。

MDBの数の増加に応じて、JDBC接続プールの増加が必要な場合があります。