21 ミドルウェア診断アドバイザの使用
ミドルウェア診断アドバイザでは、スタック全体を分析して、問題の根本原因を特定することにより、診断結果を提示します。情報の関連付けと分析を行い、問題の解決方法についてアドバイスを提供します。たとえば、パフォーマンスのボトルネックの原因があるJDBC接続プールを特定する際に役立ちます。
サーバーでミドルウェア診断アドバイザが有効になっていれば、WebLogicドメイン内の1つ以上のサーバーについて診断結果を表示できます。
この項の内容は次のとおりです。
Oracle WebLogic Serverを使用したパフォーマンスの問題の診断
Oracle WebLogic Server (WLS)は、高いパフォーマンスおよびスケーラビリティを提供するアプリケーション・サーバーです。WebLogic Serverは、デプロイメントおよび管理も簡略化して、現在の軽量開発プラットフォームを市場に投入するまでの時間を短縮します。
WLSのパフォーマンスおよびスケーラビリティを維持するには、違反を検出して違反の原因を把握することをお薦めします。これにより、迅速な対処が可能になります。パフォーマンス関連の問題は、サーバーの構成および負荷に基づいて検出されます。最も一般的なパフォーマンスの問題には、遅いレスポンス時間およびアプリケーションのクラッシュが含まれます。ミドルウェア診断アドバイザ(MDA)を使用して、値をWebLogic Management Packに追加します。WebLogicサーバーのMDAの使用の詳細を確認するには、「ミドルウェア診断アドバイザを使用したパフォーマンスの問題の診断」を参照してください。
ミドルウェア診断アドバイザを使用したパフォーマンスの問題の診断
ミドルウェア診断アドバイザまたはMDAは、Enterprise Manager (EM) Cloud Controlでモニターされるミドルウェア・ターゲットとともにパフォーマンスの問題を診断するEnterprise Manager Cloud Control内で統合された診断モジュールです。現在、MDAは、Oracle WebLogic Server 10gリリース3 (10.3)以上でサポートされています。MDAは、JDBCデータソースおよびJMSキューをモニターします。
MDAでは、パフォーマンスの低下の原因であるアプリケーション・サーバー環境の基礎となる状態を簡単に識別できます。これらの基礎となる状態は、リクエストの遅いレスポンス、ハングしているサーバー、遅いサーバー、高いメモリー使用率、高いディスクI/Oなどのパフォーマンスの低下で表すことができます。
MDAは、ランタイム環境のJMSメッセージ消費時間などの要素のパフォーマンスを分析します。その要素のパフォーマンスが特定の制限を超えて低下すると、MDAは問題を診断して、根本的な原因を検出します。MDAによって検出された問題は「診断の結果」として提示されます。ただし、パフォーマンス全体に影響しない個々の問題は、MDAによって分離されません。
MDAは次に示す分野でパフォーマンスの問題を診断します。これらはそれぞれ、「ミドルウェア診断アドバイザの構成」ページに「結果のタイプ」として示されます(図21-1を参照):
-
JDBCデータソース待機(JVMD必須)
JDBCデータソース接続の過剰な待機を調べます。
-
メッセージの配信が遅延しています(JVMD必須)
処理するメッセージの選択に要する時間が、指定した時間を超えているかどうかを調べます。これをチェックしないと、メッセージは予想より長い時間キューにとどまる可能性があります。
-
メッセージの処理に時間がかかっています(JVMD必須)
メッセージを受信するペースより処理するペースの方がずっと遅くなっているため、キューの処理に時間がかかっているかどうかを調べます。これをチェックしないと、キューが増大し、最終的にはメモリー不足エラーが発生する可能性があります。
ミドルウェア診断アドバイザの構成の前提条件
ミドルウェア診断アドバイザ(MDA)を使用したパフォーマンスの問題の診断を開始する前に、次の前提条件を満たしていることを確認します。
-
WebLogic ServerがEnterprise Managerでターゲットとして検出されます。
-
JVMDマネージャが構成されており、JVMDエージェントがターゲット・サーバーにデプロイされています。
-
ターゲットの構成収集を強制することをお薦めします。
ターゲットの構成収集を強制するには、次のステップを実行します。
-
ターゲットのメニューから、「構成」、「最新収集」の順に選択します。
-
「リフレッシュ」をクリックします。
-
ミドルウェア診断アドバイザの構成
ミドルウェア診断アドバイザ(MDA)には、新規ターゲットをチェックするために1時間ごとに実行される自動有効化ジョブがあります。ただし、コマンドemcli update_mda_properties -props="MDA_AUTO_ENABLE:1"
を実行しないかぎり、デフォルトではこれらのジョブにとってMDA分析は有効になりません。コマンドが正常に実行され、前提条件(「ミドルウェア診断アドバイザの構成の前提条件」)が満たされる場合、ジョブを次に実行する際に、ターゲットに対してMDA分析が自動的に有効になります。ただし、新しく検出されたミドルウェア・ターゲットのMDA分析をただちに有効にするには、次のステップに従います。
ターゲットのミドルウェア診断アドバイザの有効化
EM CLI動詞emcli update_mda_properties -props="MDA_AUTO_ENABLE:1"
を使用してMDA_AUTO_ENABLE
プロパティが1 (有効)に設定された後では、EMで検出される新しいWLSターゲットはデフォルトで有効です。ただし、EMインスタンスによって管理されるすべてのWLSサーバーについて有効にしたくない場合、MDA_AUTO_ENABLE
を0 (無効)に設定し、UI(この後のステップを実行)またはEM CLIのコマンドemcli enable_mda_finding_types_for_targets -finding_types="finding_type_name"-targets="target_name:target_type"を使用して、特定のターゲットについて個別に有効化することができます。
MDAを手動で有効化または無効化するには、次のステップに従います。
図21-1 「ミドルウェア診断アドバイザの構成」ページ

ミドルウェア診断アドバイザ(MDA)の設定
MDAは使用状況に応じて設定できます。MDAを設定するには、次のステップに従います。
図21-2はミドルウェア診断アドバイザ設定ページです。
図21-2 ミドルウェア診断アドバイザ設定ページ

注意:
また、EM CLIコマンドを使用してMDAを構成することもできます。詳細は、『Oracle Enterprise Managerコマンドライン・インタフェース』を参照してください。
ミドルウェア診断アドバイザの範囲の制限
一部またはすべてのターゲットでミドルウェア診断アドバイザ(MDA)を無効にすることによって、MDAの範囲を制限できます。無効にすると、無効にしたターゲットの分析の実行はスケジュールされません。ターゲットは必要なときに有効にすることもできます。
ターゲットのMDA分析を無効にするには、次のステップに従います。
- Enterprise Managerのホームページで、「ターゲット」メニューから「ミドルウェア」を選択します。
- 「ミドルウェアの機能」メニューから、「ミドルウェア診断アドバイザの構成」を選択します。
- ミドルウェア診断アドバイザの構成ページの「登録済結果タイプ」セクションで、「結果のタイプ」の1つを選択します。
- 「ターゲット」セクションで、MDAを無効にするターゲットを選択し、「無効化」をクリックします。
ターゲットのMDA分析を再度有効にするには、「ターゲットのミドルウェア診断アドバイザの有効化」を参照してください。
MDAの範囲を制限する方法の詳細は、『Oracle Enterprise Managerコマンドライン・インタフェース』ガイドを参照してください。
スケジュールされていないミドルウェア診断アドバイザ分析のターゲットに対する実行
MDAエンジンは、適用可能なすべてのターゲットでスケジュールどおりに各結果タイプの分析を実行します。スケジュールされていないオンデマンドMDA分析をターゲットに対して実行することもできます。これを行うには、次のステップを実行します。
ミドルウェア診断アドバイザに関連するトラブルシューティングの問題
MDAに関連する問題を解決するには、次の表に記載されているステップに従います。
表21-1 ミドルウェア診断アドバイザのトラブルシューティングのヒント
ヒント | 手順 |
---|---|
ターゲットで指定した結果タイプでMDAが有効になっていることを確認します。 |
ステータスが無効の場合、ターゲットに指定した結果タイプでMDAを有効にします。その他のオプションは、『Oracle Enterprise Managerコマンドライン・インタフェース』を参照してください。 |
MDA自動有効化ジョブが適切に実行されていることを確認します。 |
表に表示されるすべてのジョブを表示します。スキップされたジョブまたは失敗したジョブがない場合、自動有効化ジョブは想定どおりに実行されていることを示します。 |
MDA分析ジョブが適切に実行されていることを確認します。 |
表に表示されるすべてのジョブを表示します。スキップされたジョブまたは失敗したジョブがない場合、分析ジョブは想定どおりに実行されていることを示します。 |
MDAエンジンが正常に実行されていることを確認します。 |
MDAエンジンのステータスをチェックするコマンドについては、『Oracle Enterprise Managerコマンドライン・インタフェース』を参照してください。 |