ヘッダーをスキップ
Oracle® Fusion Middlewareパフォーマンスおよびチューニング・ガイド
11g リリース1 (11.1.1)
B61006-10
  目次へ移動
目次

前
 
次
 

16 Oracle Business Process Managementのパフォーマンス・チューニング

Oracle Business Process Management (BPM) Suiteでは、設計時および実装からランタイムおよびアプリケーション管理まで、アプリケーション開発ライフサイクルの全ステージをシームレスに統合します。

この章の内容は次のとおりです。

16.1 Oracle Business Process Managementについて

Oracle BPM Suiteは、ビジネス・プロセスを中心にしたビジネス・アプリケーションを開発、管理および使用するための統合環境を提供します。BPMは、Oracle SOA Suite上に存在し、統合の実現にBusiness Rules、Human WorkflowおよびOracle Adapter Frameworkを含む多くの同じ製品コンポーネントを共有します。

BPMの使用の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド』を参照してください。

他のOracle Fusion MiddlewareコンポーネントによるOracle BPMのチューニングの詳細は、第2章「主なパフォーマンス分野」を参照してください。

16.2 チューニングに関する基本的な考慮事項

この項では、次の基本的なBPMパフォーマンス・チューニング・プロパティについて説明します。


注意:

この章で説明する構成例および推奨設定は解説用のものです。各自のユースケース・シナリオを検討し、パフォーマンスの向上が可能な構成オプションを判断してください。


16.2.1 監査レベル

auditLevelプロパティには、監査証跡のロギング・レベルを設定します。この構成プロパティは、永続プロセスと一時プロセスの両方に適用されます。このプロパティが制御するのは、プロセスによってログに記録される監査イベントの量です。監査イベントを記録すると、audit_trail表へのデータベース挿入が増えるため、パフォーマンスに影響が出ることがあります。監査情報は、Oracle Enterprise Managerコンソールからプロセスの状態を確認する目的でのみ使用されます。

監査情報を保存しない場合は、off値を使用します。監査レベルは、常にビジネス要件およびユースケースに従って選択してください。監査レベルの設定の詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』の監査レベル設定の優先順位の理解に関する項を参照してください。

説明

継承

インフラストラクチャ・レベルから監査レベルを継承します。

オフ

監査イベント(アクティビティ実行情報)は保持されず、ロギングは実行されません。この場合、インスタンス処理のパフォーマンスがわずかに向上する可能性があります。

最小

すべてのイベントがログに記録されます。ただし、監査詳細(変数の内容)は記録されません。

エラー

管理者がただちに対処する必要があり、製品の不具合以外が原因の重大な問題のみログに記録します。このレベルを使用すると、パフォーマンスを向上できます。

本番

すべてのイベントがログに記録されます。assignアクティビティの監査詳細は記録されませんが、それ以外のすべてのアクティビティの詳細が記録されます。

開発

すべてのイベント、およびすべてのアクティビティのすべての監査詳細がログに記録されます。


16.2.2 LargeDocumentThreshold

largedocumentthresholdプロパティには、大きなXMLドキュメントの永続性しきい値を設定します。これは、BPMNデータ・オブジェクトの最大サイズ(KB)です。これを超えると、BPMNデータ・オブジェクトが他のインスタンス・スコープ・データとは異なる場所に格納されるようになります。

このプロパティは、永続プロセスと一時プロセスの両方に適用されます。

インスタンス処理を行う必要が生じるたびに、大きなXMLドキュメントの読込みおよび書出しが絶えず行われる場合は、Oracle BPMランタイム全体のパフォーマンスに影響が出ます。

デフォルト値は10000 (100KB)です。

16.2.3 ディスパッチャ・システム・スレッド

dspSystemThreadsプロパティには、システム・ディスパッチャ・メッセージの処理に割り当てるスレッドの総数を指定します。システム・ディスパッチャ・メッセージとは、通常はサーバーで迅速に処理される一般的なクリーン・アップ・タスク(ステートフル・メッセージBeanを元のプールへ解放するなど)です。一般に、実行時に生成される数のシステム・ディスパッチャ・メッセージは、ごく少数のスレッドで処理できます。

このスレッド・プールの最小スレッド数は1です。0や負の数に設定することはできません。

デフォルト値は2です。1スレッド未満の値は、デフォルト値に変更されます。

16.2.4 ディスパッチャ・エンジン・スレッド

dspEngineThreadsプロパティには、エンジン・ディスパッチャ・メッセージの処理に割り当てるスレッドの総数を指定します。エンジン・ディスパッチャ・メッセージは、アクティビティを非同期に処理する必要がある場合に必ず生成されます。デプロイされたプロセスの大部分が永続的で、多数のデハイドレーション・ポイント(プロセス途中のreceive、onMessage、onAlarmおよびwaitアクティビティ)がある場合は、エンジン・スレッド数を増やすことでパフォーマンスを改善できる可能性があります。スレッド数が多くなると、コンテキスト切替えのコストが高くなるため、CPU使用率が増加する場合もありますので注意してください。

このスレッド・プールの最小スレッド数は1です。0や負の数に設定することはできません。

デフォルト値は30スレッドです。1スレッド未満の値は、デフォルト値に変更されます。

16.2.5 ディスパッチャ呼出しスレッド

dspInvokeThreadsプロパティには、呼出しディスパッチャ・メッセージの処理に割り当てるスレッドの総数を指定します。呼出しディスパッチ・メッセージは、受信したペイロードごとに生成されるもので、新規インスタンスのインスタンス化を目的としています。エンジンによって処理されるリクエストの大部分が(インスタンス・コールバックではなく)インスタンス呼出しである場合は、呼出しスレッド数を増やすことでパフォーマンスを改善できる可能性があります。スレッド数が多くなると、コンテキスト切替えのコストが高くなるため、CPU使用率が増加する場合もあります。

このスレッド・プールの最小スレッド数は1です。0や負の数に設定することはできません。

デフォルト値は20スレッドです。1スレッド未満の値は、デフォルト値に変更されます。

16.3 Oracleワークスペースおよびワークリスト・アプリケーションのチューニング

次の設定を使用して、Oracleワークスペースおよびワークリスト・アプリケーションをチューニングできます。

パラメータ 説明

HTTPセッション・タイムアウト

リソースの使用状況を管理するには、web.xmlファイルでセッション・タイムアウト値(分)を調整します。

次に示すのは、web.xmlのサンプル・スニペットです。

<session-config>
         <session-timeout>
            5
         </session-timeout>
      </session-config>

ADFクライアント状態トークン

この設定では、ユーザーが情報を失わずにブラウザの「戻る」ボタンで移動可能なページの数を制御できます。CPUおよびメモリーの使用率を下げるには、web.xmlファイルで値を小さくします。

次に示すのは、web.xmlのサンプル・スニペットです。

<context-param>
         <param-name>
            org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS
         </param-name>
         <param-value>
            3
         </param-value>
      </context-param>

Compress_View_Stateトークン

この設定は、ページ状態を圧縮するかどうかを制御します。圧縮により、セッション・オブジェクトのページ状態で使用されるメモリーを大幅に削減しました。

次に示すのは、web.xmlのスニペットです。

<param-name>org.apache.myfaces.trinidad.COMPRESS_VIEW_STATE</param-name>
 <param-value>true</param-value>

DISABLE_CONTENT_COMPRESSION

デフォルトでは、レンダリングされたスタイル・クラスは、ページ・サイズを小さくするために圧縮されます。本番環境では、必ずDISABLE_CONTENT_COMPRESSIONパラメータをweb.xmlファイルから削除するか、FALSEに設定してください。

次に示すのは、web.xmlのスニペットです。

<param-name>org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION</param-name> <param-value>false</param-value>

16.4 Process Analyticsのチューニング

Process Analyticsのチューニングの内容は、次のとおりです。

16.4.1 プロセス測定

Process Analyticsは測定イベントを使用して、プロセスをサンプリングし、登録されたコンシューマに測定を公開します。BPMN構成の「センサーの無効化」を使用して、これらの測定を無効にできます。BPMN構成の「アクションの無効化」を使用して、これらの測定の特定のコンシューマを無効にできます。詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。


注意:

有益なデータのみが公開されます。プロセス設計では、どのデータ(ディメンション、メジャー、カウンタ)をどの時点で公開するかを指定します。有益でないデータが生成される場合、不要な負荷がシステムに加わっている可能性があります。


測定イベントは、JMSトピックのMeasurementTopicで公開され、登録されたアクションMDBで消費されます。測定するためにJMSをチューニングするには、大規模な環境で必要に応じて次の値を変更することを検討してください。

  • MeasurementTopic

    最大バイト数 800MB

    最大メッセージ 1000000

  • MeasurementTopicConnectionFactory

    送信タイムアウト 240000

  • BPMJMSServer

    MessageBufferサイズ 100000

    BPMJMSServerは、ページング・ファイルおよびJMSファイル・ストアを使用します。

16.4.2 プロセス・キューブのチューニング

プロセス・キューブは、ワークロード情報を計算する定期的な集計を実行します。これらの計算の頻度は、BPMNConfig MBeanのCubeUpdateFrequencyパラメータで決定され、Oracle Enterprise Managerコンソールから変更できます。大規模な環境では、リソースの計算を保存する場合などにこのパラメータを適切な12時間などの高い値に変更することを検討してください。


注意:

ワークロード・スナップショットの作成は、パフォーマンスに影響を与える可能性があります。Oracle Fusion Middleaware Controlのプロパティを使用して、ワークロード・スナップショットの頻度および存続時間(TTL)をチューニングすることを検討してください。Fusion Middleware Controlの使用の詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。


プロセス・キューブ・アグリゲータは、BPM_CUBE_AUDITINSTANCE表を使用して、ワークロードおよびパフォーマンス情報を計算します。BPM_CUBE_AUDITINSTANCE表の不要なレコードは、SOAパージ・スクリプトの一部としてパージされます。また、プロセス・キューブの計算のパフォーマンスを改善するには、次の削除スクリプトを定期的に実行してBPM_CUBE_AUDITINSTANCE表の不要なレコードをパージすることを検討してください。

DELETE FROM BPM_CUBE_AUDITINSTANCE A
WHERE EXISTS
(SELECT 1 FROM BPM_CUBE_AUDITINSTANCE B
WHERE A.COMPONENTINSTANCEID = B.COMPONENTINSTANCEID AND
B.OPERATION='INSTANCE_CREATED' AND
B.ACTIVITYSTATUS='PROCESSED')

前述のとおり不要なレコードを削除したら、領域の縮小も検討してください。削除された領域はただちに解放されないため、次のコマンドを実行します。

alter table BPM_CUBE_AUDITINSTANCE enable row movement;
 
alter table BPM_CUBE_AUDITINSTANCE shrink space;
 
ALTER TABLE BPM_CUBE_AUDITINSTANCE MODIFY LOB (<lob_column>) (SHRINK SPACE);