| Oracle® Enterprise Manager Oracle Fusion Middleware Managementスタート・ガイド 11g リリース1(11.1.0.1) B61025-01  | 
  | 
![]() 戻る  | 
![]() 次へ  | 
この章ではJVM Diagnosticsの概要を説明します。この章の内容は次のとおりです。
ミッション・クリティカルなJavaアプリケーションは、可用性とパフォーマンスの問題にしばしば直面します。開発者とIT管理者は多くの時間を費やして、これらの問題の根本的原因を診断します。本稼働環境で発生する問題は、他の環境では再現できないか、時間がかかりすぎて再現できないことがほとんどです。これはビジネスに重大な影響を及ぼすことがあります。
Oracle Enterprise Manager Grid Control 11gリリース1のJVM Diagnosticsを利用すると、管理者は本稼働環境におけるJavaアプリケーションのパフォーマンスの問題を診断できます。問題を再現する必要性がなくなるため、問題の解決にかかる時間が短縮されます。これによってアプリケーションの可用性とパフォーマンスが向上します。管理者はJVM Diagnosticsを使用することで、本稼働環境におけるパフォーマンスの問題の根本的原因を、テストまたは開発環境で再現しなくても特定できます。アプリケーションの深層部の詳細を得る場合、アプリケーションの複雑な計測や再起動は必要ありません。アプリケーション管理者は、アプリケーションの深い知識がなくても、アプリケーションの停止時間を引き起こしているJavaの問題やデータベースの問題を特定できます。JVM Diagnosticsの主な特長は次のとおりです。
JVM Diagnosticsでは、Javaアプリケーションの処理を遅らせずにアプリケーションの深部まで監視できます。これによって、最も遅いリクエスト、最も遅いメソッド、I/Oで待機中のリクエスト、多数のCPUサイクルを使用中のリクエスト、そしてデータベース・コールで待機中のリクエストを特定できます。また、リソース・ボトルネックの影響を受けているエンドユーザー・リクエストも特定できます。同時に、パフォーマンス・ボトルネックを引き起こしているアプリケーション・リソースも確認できます。
JVM DiagnosticsではJavaスタックを迅速に可視化できます。スレッドの状態とJavaメソッド/行番号をリアルタイムで監視し、アプリケーション・クラッシュ、メモリー・リークおよびアプリケーションのハングなどの問題を、発生後に診断するのではなく発生前に特定することができます。
特定のリクエストがハングしている場合や、アプリケーション全体の処理が遅い場合、管理者はリアルタイム・トランザクション・トレースを実行して、現在のJavaアプリケーション・アクティビティを表示できます。障害が発生しているスレッドや、その実行コール・スタックを参照できます。また、スレッドがデータベース・ロックの待機に費やした時間などの、様々なボトルネック・リソースも分析できます。あるスレッド(またはリクエスト)のアクティビティが他のスレッドのアクティビティや残りのJVMに影響する場合などの複雑な問題を、迅速に発見することができます。
時折、使用されている監視間隔(通常は10秒)が不正確になる場合があります。対象のJavaスレッドのライブが短すぎるか、収集された監視データの量が不十分である可能性があります。このようなケースでは、JVMトレースを実行して、JVMアクティビティの正確な詳細を取得できます。この機能では、短期間に非常に高い頻度(デフォルトは50ミリ秒に1回)でJavaアプリケーションを監視できます。これによって、スレッド、ボトルネック・リソース(DB、I/O、CPU、ロック、ネットワーク)およびトップ・メソッドの相互依存性を識別できます。
JVM Diagnosticsでは関連付けられたデータベース・セッションへのJavaリクエストのトレースが容易になり、その逆の場合も同様で、様々な層にまたがる問題の迅速な解決も可能になります。この機能では最も遅いSQL問合せが明らかになるため、管理者がSQLおよびデータベースをチューニングしてパフォーマンス・アプリケーションを向上できます。これによって、データベースまたはアプリケーション層に対して問題が切り離されるため、データベース管理者とアプリケーション管理者のコミュニケーションがスムーズになります。
メモリー・リークはアプリケーションの処理速度の低下につながり、最終的にはアプリケーションのクラッシュを引き起こします。JVM Diagnosticsでは、Javaメモリーの異常な消費量について管理者にアラートが送られます。管理者はJVM Diagnosticsを使用して、アプリケーションに干渉せずに本稼働アプリケーションのヒープ・ダンプを取得できます。複数のヒープ・ダンプを一定期間で取得し、ヒープ・ダンプ間の差異を分析して、メモリー・リークを引き起こしているオブジェクトを識別できます。ヒープ分析は、バージョンが異なるアプリケーションに対しても実行できます。複数のヒープ・ダンプによる様々なヒープ分析によって、メモリー・リークの識別が容易になります。
JVM Diagnosticsでは、管理者がJVMのセットをJVMプール内にグループ化できます。これによって、すべての関連するJVMに対する単一のビューがコンソール・ユーザーに提供されます。したがって、単一のアプリケーションまたは単一のクラスタを構成するすべてのJVMを、アプリケーション内でグループ化できます。このため、管理者が問題を自然かつ直観的に視覚化できるようになります。
JVM Diagnosticsでは、Javaアプリケーションでリアルタイムおよび履歴の診断を実行できます。これによって、本稼働の問題の根本的原因について、同じ問題をテストまたはQA環境で再現しなくても詳細に見通すことができます。トランザクションはブラウザからインタラクティブに再生して、ネットワークおよびサーバーでの消費時間を表示できます。また、サーブレット、JSP、EJB、JDBCおよびSQLレイヤーによるレスポンス時間ブレークダウンも表示できます。
リアルタイム・データ以外に、履歴データを分析して過去に起こった問題を診断することもできます。エンドユーザー・リクエストにかかった時間と、サーブレット、JSP、EJB、JDBCおよびSQLレイヤーによるブレークダウンを示す履歴データを表示できます。
この項では、Oracle Enterprise Manager Grid Control 11gリリース1におけるJVM Diagnosticsの新機能について一覧で示します。
JVM Diagnosticsは現在、Oracle Enterprise Manager Grid Controlに統合されています。
旧コンソールの一部のページはADF形式に変換されています。
Enterprise Managerリポジトリが現在、JVM Diagnosticsに使用されています。
Enterprise Manager Grid Controlユーザーは現在、各自の権限に基づいてJVM Diagnosticsタスクを実行できます。
JVM DiagnosticsマネージャとJVM Diagnosticsエージェント間のセキュアな通信が現在、サポートされています。
この項で一覧で示されている機能は、個別パッチを適用している場合のみ、利用できます。
複数のJVM Diagnosticsマネージャ: 複数のJVM Diagnosticsマネージャをデプロイし、これらのマネージャに対して1つ以上のエージェントを接続できるようになりました。詳細は、「複数のJVM Diagnosticsマネージャのデプロイによるスケール拡大」を参照してください。
レベル0(L0)トレース: Application Dependency and Performanceエージェントが実行中でRequest Monitoringが構成されている場合、追加データは「JVM診断」画面に表示されます。たとえば、次のように表示されます。
ドメイン(プール)の「サマリー」ページ上の「上位リクエスト」における平均経過時間。リクエスト・フローの詳細を表示するには「リクエスト名」をクリックします。
「ドメイン(プール)」または「リアルタイム分析」ページで「経過時間」、「ECID」および「RID」も表示されます。
SQL識別子のサポート: 特定のSQLテキストまたはSQLハッシュ値に対応するSQL IDの問合せおよび検索を実行できるようになりました。
アプリケーション開発フレームワーク(ADF): ADFサポートでは、エンティティ・オブジェクトおよびビュー・オブジェクトもトップ・メトリック・セクションに表示されます。
web.xmlファイルの変更: JVM Diagnosticsエージェントのweb.xmlファイルを変更するオプションが可能になりました。詳細は、10.7.7項「「エージェントのダウンロード」ページ」を参照してください。
JVM Diagnosticsマネージャは次のプラットフォームでサポートされています。
Windows(2000以上)
Linux x86(RHEL 3以上)
Solaris SPARC(8以上)
JVM Diagnosticsデータベース・エージェントは、次のプラットフォームでOracle 8i以上をサポートしています。
Linux x86、Linux x86_64およびIA64
Solaris SPARCおよびx86
AIX PowerPC
PA-RISCおよびIA64でのHPUX 11
JVM Diagnosticsエージェントは次のJVMをサポートしています。
Sun JDK - 1.3、1.4、1.5および1.6
JRockit - 1.4および1.5
HP JVM - 1.4、1.5および1.6
IBM JVM - 1.4、1.5および1.6
最新の認証の詳細はMy Oracle Supportサイトを参照してください。
| 
 注意: 
  | 
JVM Diagnosticsを使用するには、次のEnterprise Managerシステム権限のどちらかを保持している必要があります。
JVM診断ユーザー: JVM Diagnosticsデータを表示できます。
JVM診断管理者: JVM Diagnostics操作を管理できます。
これらの権限は「設定」ページで定義できます。これらの権限の定義の詳細は、管理ガイドのEnterprise Managerセキュリティの章を参照してください。