ナビゲーションをスキップ

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

  前 次 vertical dots separating previous/next from contents/index/pdf 目次  

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

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

 


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

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

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

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

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

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

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

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

ビジネス プロセスでパラレル ノードのパフォーマンスを向上させるには、どのようにすればよいですか。

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

<parallel continueTransaction="true">

詳細については、『WebLogic Integration 8.1 リリース ノート』の「ビジネス プロセス」にある「Continue Transaction Attribute on Parallel Nodes」を参照してください。

JMS キューに多数の保留中メッセージがあります。なぜでしょうか。

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

保留中の JMS タイマー メッセージを取り除く方法を教えてください。

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

* @jws:conversation-lifetime max-age="0s"

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

トランザクションのタイムアウト期間を増やす方法を教えてください。

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

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

 


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

この節では、以下の質問に対する答えを示します。

パフォーマンスを最大化するには、WebLogic Server の起動時にどのフラグを使用すればよいですか。

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

production noiterativedev nodebug notestconsole

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

WebLogic Integration アプリケーションのチューニング方法を教えてください。

WebLogic Integration のプロジェクトは、J2EE リソースにマップします。正確なマップに関する基本情報については、次の場所にある「WebLogic Workshop Internals」を参照してください。

http://dev2dev.bea.com/products/wlworkshop81/articles/wlw_internals.jsp

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

http://edocs.beasys.co.jp/e-docs/wls/docs81/secwlres/index.html

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

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

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

JMS イベント ジェネレータの max-beans-in-free-pool 値はコンフィグレーションできますか。

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

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

ステートフルなビジネス プロセスのバージョニングは、いつ行うべきですか。

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

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

パフォーマンスを最適化するには、どのプロセス トラッキング レベルを使用すればよいですか。

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

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

プロセス トラッキング レベルが none に設定されている場合、アーカイバを実行する必要がありますか。

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

アーカイバ プロセスをコンフィグレーションする方法については、『WebLogic Integration ソリューション管理』の「プロセス コンフィグレーション」の「プロセス トラッキング データの管理」を参照してください。

Web サービスの情報メッセージが表示されないようにする方法を教えてください。

common/lib/workshopLogCfg.xml を編集して、info をすべて warn に変更します。

WebLogic Integration アプリケーションでは、どのような場合にドキュメント ストアを使用すればよいですか。

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

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

ファイルベースの永続性と JDBC のどちらが JMS の永続モデルとして最適ですか。

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

負荷がかかった状態で実行している WebLogic Integration アプリケーションをモニタするときは、何に注目すればよいですか。

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

表 1-1 モニタすべき WebLogic Integration アプリケーションのパラメータ

パラメータ

モニタ方法

問題と考えられる状況

必要なアクション

アイドル スレッド カウント

サーバの [コンフィグレーション|一般] タブにある [詳細オプション] の [実行キューのコンフィグレーション] コマンドを選択する。

カウントが 0 に近づいている。

Thread Count の値が 5 より小さい場合は、それより大きい値に変更する。デフォルト キューのデフォルト プロダクション スレッド カウントは 25。

詳細については、『WebLogic Server パフォーマンス チューニング ガイド』の「WebLogic Server のチューニング」にある「デフォルトの実行キュー スレッドのチューニング」を参照。

JDBC 接続プール使用数

[JDBC 接続プール] の [モニタ] タブを選択する。

使用中の接続数が、使用可能な最大数に近づいている。

JDBCConnectionPoolMaxCapacity 属性を大きくする。

詳細については、『WebLogic Server パフォーマンス チューニング ガイド』の「WebLogic Server のチューニング」にある「JDBC 接続プールによるパフォーマンスの向上」を参照。

プロジェクト Bean の JMS 非同期キューの数

JMS と Servers ノードを展開し、サーバを選択し、[モニタ] をクリックする。

キューに多数のメッセージがある。

AsyncDispatcher のプール サイズを大きくする。

詳細については、「WebLogic Integration アプリケーションのチューニング方法を教えてください。」を参照。

wli.internal.tracking.buffer

[Domain|サービス|JMS|サーバ|cgJMSServer] を選択する。

キューに多数のメッセージがある。

wli.internal.
ProcessTracking
という名前のスレッド実行キューを作成し、プール内のスレッド数を増やす。

詳細については、『WebLogic Server パフォーマンス チューニング ガイド』の「WebLogic Server のチューニング」を参照。

wli.internal.instance.info.buffer

[Domain|サービス|JMS|サーバ|cgJMSServer] を選択する。

キューに多数のメッセージがある。

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 プログラマーズ ガイド』の「エンタープライズ JavaBean の実装」にある「デプロイメント記述子を編集する」を参照してください。

アプリケーションでメモリがリークしているようです。なぜでしょうか。

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

 

ナビゲーション バーのスキップ  ページの先頭 前 次