WLI アプリケーション ライフ サイクルのベスト プラクティス

     前  次    新しいウィンドウで目次を開く     
ここから内容

WLI のパフォーマンスに関するヒントとアプリケーションの回復

 


パフォーマンスに関するヒント

以降の各節では、高度なパフォーマンスを誇る Oracle WebLogic Integration アプリケーションの設計およびチューニングに関するヒントを紹介します。内容は以下のとおりです。

設計時のパフォーマンスに関するヒント

この節では、設計時のパフォーマンスに関する次のようなヒントを紹介します。

プロセス、コントロール、およびコールバック メソッド

ビジネス プロセスのパラレル ノードにおけるパフォーマンスの向上

デフォルトでは、パラレル ノードの各ブランチはトランザクションでは独立して扱われます。パフォーマンスを向上させるには、各パラレル要素のソースで continueTransaction プロパティを次のように設定して、この動作をオーバーライドできます。

<parallel continueTransaction="true">

JMS キューのメッセージの保留

Oracle WebLogic Server Administration Console では、「タイマー メッセージ」(送信時刻が現在の時刻より後の時刻に設定されているメッセージ) は「保留中メッセージ」として表示されます。

保留中の JMS タイマー メッセージの削除

ステートフル プロセスの場合、会話の最大存続期間を使用しないのであれば、次のように無効にします。

weblogic.jws.Conversational

会話の存続期間の詳細については、『WebLogic Web サービス リファレンス ガイド』にある「JWS アノテーション リファレンス」で「@jws:conversation-lifetime アノテーション」を参照してください。

トランザクションのタイムアウト期間の増加

トランザクションのデフォルトのタイムアウト期間は 300 秒 (5 分) です。以下のいずれかの方法で、トランザクションがタイムアウトするまでの経過時間を増やすことができます。

トランザクションのタイムアウト期間の回復に関する考慮事項については、「回復に対応した Oracle WebLogic Integration アプリケーションのコンフィグレーション」を参照してください。

実行時のチューニングに関するヒント

この節では、実行時のチューニングに関するヒントを紹介します。

フラグを使用した Oracle WebLogic Server の起動とパフォーマンスの最大化

パフォーマンスを最適化するには、Oracle WebLogic Server を起動するときに次のフラグを使用します。

production noiterativedev nodebug notestconsole

注意 : 生成済みのプロダクション ドメインを使用する場合、これらのフラグはデフォルトで設定されますが、開発ドメインを使用する場合には、デフォルトでは設定されません。

Oracle WebLogic Integration アプリケーションのチューニング

Oracle WebLogic Integration のプロジェクトは、J2EE リソースにマップします。Oracle WebLogic Integration プロジェクト内でチューニングできる主な EJB プールは、SyncDispatcher ステートレス セッション Bean (SLSB) プールと AsyncDispatcher メッセージ駆動型 Bean (MDB) プールです。これらのプールはアプリケーション内のすべての Oracle WebLogic Integration プロジェクトに存在します。

すべての同期要求は SyncDispatcher によってルーティングされ、すべての非同期 (バッファ) 通信は AsyncDispatcher によってルーティングされます。

これらの Bean のプール サイズをコンフィグレーションするには、次の 2 つの方法があります。

チューニング全般に関する基本情報については、『Oracle WebLogic Server パフォーマンス チューニング ガイド』を参照してください。

JMS イベント ジェネレータの max-beans-in-free-pool のコンフィグレーション

可。JMS イベント ジェネレータの max-beans-in-free-pool は、デフォルトでは 5 に設定されています。この値を大きくすると、多くの場合はパフォーマンスを向上させることができます。

詳細については、『Oracle WebLogic Server パフォーマンス チューニング ガイド』の「Oracle WebLogic Server EJB のチューニング」にある「パフォーマンス関連の weblogic-ejb-jar.xml パラメータの設定」を参照してください。

ステートフル ビジネス プロセスのバージョン管理

長時間実行されるビジネス プロセスに対してバージョニングを行う場合は、プロダクション モードでアプリケーションをデプロイする前の初期段階からプロセスをバージョニングするようにします。それ以外の場合は、バージョニングされていないインスタンスを完了するまで実行してから、バージョニングされた新しいプロセスをデプロイする必要があります。

詳細については、『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」にある「プロセス バージョンの管理」を参照してください。

パフォーマンスを最適化するためのプロセス トラッキング レベルの設定

パフォーマンスを最適化するには、プロセス トラッキング レベルを可能な限り低くします。デフォルトの none に設定し、必要に応じて選択した JPD をトラッキングします。

トラッキング レベルのコンフィグレーション方法の詳細については、『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」にある「プロセス コンフィグレーションについて」の「プロセス トラッキング データの管理」を参照してください。

プロセス トラッキング レベルが None に設定されている場合のアーカイバの実行

可。ピーク時以外の時間にアーカイバ プロセスを実行して、ステートフル プロセスのプロセス モニタ テーブルをクリーン アップする必要があります。

アーカイブ プロセスのコンフィグレーション方法の詳細については、『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」にある「プロセス トラッキング データの管理」を参照してください。

Web サービスの情報メッセージの無効化

<domain-home>/apacheLog4jCfg.xml を編集して、info をすべて warn に変更します。

Oracle WebLogic Integration アプリケーションでのドキュメント ストアの使用

インラインではなく (ドキュメント ストアを使用する) 参照渡しが効率的なドキュメント サイズのしきい値は、アプリケーションごとに異なります。通常は、ドキュメントの通信の回数が多いほど、ドキュメント ストアを使用すると効率的です。参照渡しのファイルのサイズをコンフィグレーションするには、Oracle WebLogic Integration アプリケーション ドメインの wli-config.properties ファイルにある weblogic.wli.DocumentMaxInlineSize パラメータの値を設定します。

注意 : ドキュメント ストアを使用する場合、2 フェーズ コミット関連の競合状態が原因で、メッセージ SQLException in retrievData() がログに表示されることがあります。その場合、すべてのドキュメントがインラインで渡されるように weblogic.wli.DocumentMaxInlineSize の値を大きくします。

JMS の最適な永続性モデルの選択

高速のディスク サブシステムまたはバッテリでバックアップされたキャッシング コントローラがある場合は、ファイルベースの永続性の方が、JDBC よりも大幅に高速である可能性があります。

負荷がかかった状態で実行している Oracle WebLogic Integration アプリケーションのパラメータのモニタ

次の表に、Oracle WebLogic Integration アプリケーションが使用する主なリソースのパラメータで、Oracle WebLogic Server Administration Console でモニタすべきパラメータと、問題と考えられる状況が発生した場合の処置を示します。

表 6-1 モニタすべき Oracle WebLogic Integration アプリケーションのパラメータ
パラメータ
モニタ方法
問題と考えられる状況
必要なアクション
JDBC 接続プール使用数
サービスArrow symbolJDBC データ ソースArrow symbol各データ ソースArrow symbolモニタ。
使用中の接続数が、使用可能な最大数に近づいている。
JDBCConnectionPoolMaxCapacity 属性を大きくする。
詳細については、『Oracle WebLogic Server パフォーマンス チューニング ガイド』の「Oracle WebLogic Server のチューニング」にある「JDBC 接続プールによるパフォーマンスの向上」を参照。
プロジェクト Bean の JMS 非同期キューの数
サービスArrow symbolメッセージングArrow symbolJMS モジュールArrow symbolconversational-jms。
キューに多数のメッセージがある。
AsyncDispatcher のプール サイズを大きくする。
wli.internal.tracking.buffer
サービスArrow symbolメッセージングArrow symbolJMS モジュールArrow symbolconversational-jms。
キューに多数のメッセージがある。
wli.internal.ProcessTracking という名前の
スレッド実行キューを作成し、プール内のスレッド数を増やす。
詳細については、『Oracle WebLogic Server パフォーマンス チューニング ガイド』の「Oracle WebLogic Server のチューニング」を参照。
wli.internal.instance.info.buffer
サービスArrow symbolメッセージングArrow symbolJMS モジュールArrow symbolconversational-jms。
キューに多数のメッセージがある。
wli.internal.
ProcessTracking
という名前のスレッド実行キューを作成し、プール内のスレッド数を増やす。
詳細については、『Oracle WebLogic Server パフォーマンス チューニング ガイド』の「Oracle WebLogic Server のチューニング」を参照。

トランザクション タイムアウト数の削減

アプリケーションを展開 EAR としてデプロイした場合、Oracle WebLogic Server Administration Console で trans-timeout-seconds の値を増やすことで、トランザクションがタイムアウトするまでの経過時間を増やすことができます。その際、Oracle WebLogic Integration アプリケーションのソース内にある同じ値を同様に変更して、アプリケーションの再デプロイ時に trans-timeout-seconds の値がデフォルト値にリセットされないようにする必要があります。

アプリケーションを展開 EAR としてデプロイしない場合は、Oracle WebLogic Server Administration Console から trans-timeout-seconds にアクセスできません。アプリケーション内で trans-timeout-seconds の値を増やしてからアプリケーションを再デプロイし、増加したタイムアウト値を反映させる必要があります。

trans-timeout-seconds の値の変更方法の詳細については、『Oracle WebLogic エンタープライズ JavaBeans (EJB) プログラマーズ ガイド』の「エンタープライズ JavaBean の実装」にある「デプロイメント記述子を編集する」を参照してください。

アプリケーションでのメモリ リークの原因

メモリ リークの最も多い原因は、次のとおりです。

 


WLI アプリケーションの回復

この節では、Oracle WebLogic Integration アプリケーションの回復処理のコンフィグレーションに関する質問の回答を示します。内容は以下のとおりです。

回復に対応した Oracle WebLogic Integration アプリケーションのコンフィグレーション

Oracle WebLogic Integration アプリケーションが次のようにコンフィグレーションされていることを確認してください。

回復処理の開始

不明なトランザクションが Oracle 内に出現するまでには、数分間かかる場合があります。Oracle が TM の消失を検出する前に回復処理を開始した場合、競合が発生する可能性があります。回復処理を開始する (サーバを再起動するか JTA の移行を実行する) 前に、数分間待ってください。

回復処理を開始した後で Oracle dba_2pc_pending テーブルを調べたときに、障害が発生したサーバに関連するレコードがあり、そのタイムスタンプが回復処理の開始時刻よりも前である場合、回復処理は失敗します。サーバを再起動してください。


  ページの先頭       前  次