WebLogic Integration ソリューションのベスト プラクティスに関する FAQ

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

WLI クイック リファレンス

 


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

この節では、高パフォーマンスな WebLogic Integration アプリケーションの設計およびチューニングに関する質問の答えを示します。内容は以下のとおりです。

設計時のパフォーマンス上の問題

この節では、以下の質問に答えます。

ステートフル プロセスとステートレス プロセスでは、どちらが速いですか。

ステートレス プロセスはステートフル プロセスよりもはるかに速く処理されます。

プロセス コントロールとサービス コントロールでは、どちらが速いですか。

プロセス コントロールはサービス コントロールよりも速く処理されます。

プロセス コントロール コールバックとメッセージ ブローカ サブスクリプションでは、どちらのコールバック メソッドが速いですか。

プロセスを開始する場合は、プロセス コントロールとメッセージ ブローカのどちらを使用してもパフォーマンスはほとんど同じですが、受信に関しては、プロセス コントロール コールバックの方が、メッセージ ブローカ サブスクリプションよりも大幅に短い時間で受信されます。メッセージ ブローカ サブスクリプション フィルタ メカニズムでは、データベースを使用してフィルタ値をプロセス インスタンスにマップします。プロセス コントロール コールバックは、プロセス インスタンスに直接ルーティングされます。

ビジネス プロセスにおけるパラレル ノードのベスト パフォーマンスについて。

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

<parallel continueTransaction="true">

JMS キュー内の保留メッセージについて。

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

保留中の JMS タイマー メッセージの除去について。

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

weblogic.jws.Conversational

会話の存続期間の詳細については、WebLogic Workshop ヘルプの「WebLogic Workshop リファレンス」にある「Java Web サービスのアノテーション」の「@jws:conversation-lifetime Annotation」を参照してください。

トランザクションのタイムアウト期間を増やす方法について。

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

注意 : wlw-config.xml ファイルは、8.1 および 9.2 リリース両方に対して同じです。

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

実行時のチューニング上の問題

この節では、以下の質問に答えます。

パフォーマンスを最大化するための、WebLogic Server 起動時のフラグの使用について。

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

production noiterativedev nodebug notestconsole

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

WebLogic Integration アプリケーションのチューニングについて。

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

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

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

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

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

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

詳細については、『WebLogic Server パフォーマンス チューニング ガイド』の「WebLogic Server EJB のチューニング」にある「Setting Performance-Related weblogic-ejb-jar.xml Parameters」を参照してください。

ステートフルなビジネス プロセスのバージョニングについて。

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

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

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

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

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

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

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

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

Web サービスの情報メッセージの非表示について。

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

WebLogic Integration アプリケーションでのドキュメント ストアの使用について。

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

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

JMS の最適な永続モデルの選択について。

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

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

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

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

タイムアウトするトランザクション数の削減について。

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

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

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

アプリケーションでのメモリ リークの原因について。

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

 


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

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

回復処理のチェックリスト

この節では、以下の質問に答えます。

WebLogic Integration アプリケーションの回復処理のコンフィグレーションについて。

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

回復処理の開始について。

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

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


  ページの先頭       前  次