診断イメージ・キャプチャ・コンポーネントは、問題の診断に使用する主要なサーバーの状態についての一般的なソースを収集し、その状態を単一のファイルまたは診断イメージにパッケージします。WebLogic管理コンソールまたはWLSTコマンドを使用して、サーバーのイメージ・キャプチャを開始できます。
診断イメージ・キャプチャは、以下のいずれかによって開始されます。
構成されたポリシー。アクションの構成を参照してください。
WebLogic Server管理コンソールでユーザーが開始したリクエスト(および、サードパーティの診断ツールから開始されたリクエスト)。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの診断イメージの構成とキャプチャに関する項を参照してください。
JMXによるAPIの直接呼出し。例6-1を参照してください。
WLSTコマンド
診断イメージのキャプチャを開始する際に、イメージのキャプチャ先の場所、WLDFの診断ボリューム、サーバーの障害発生中にイメージをキャプチャする頻度など、キャプチャの詳細を構成できます。
診断イメージ・キャプチャは、主に障害発生後の解析ツールとして利用するものなので、どのような情報をキャプチャするかについては限られた権限しか与えられていません。診断イメージ・キャプチャで指定可能な構成オプションは次のとおりです。
イメージの宛先
デフォルトの宛先とは別の宛先(指定したキャプチャの場合)
サーバーの障害発生から回復までにイメージがキャプチャされる頻度を設定するロックアウト(タイムアウト)期間
Javaフライト・レコーダ・ファイルでキャプチャされるWebLogic Serverイベント情報のボリュームを決定するWLDF診断ボリューム。
他のWLDFコンポーネントと同様に、診断イメージ・キャプチャは、WebLogic Server管理コンソール(Oracle WebLogic Server管理コンソール・オンライン・ヘルプの診断イメージの構成とキャプチャに関する項を参照)やWebLogic Scripting Tool (WLST)を使用して、またはプログラムで構成できます。
次の例に示す簡単なポリシー式は、JVMRuntimeMBean
のHeapFreePercent
属性の値が20未満のときにtrueを返します。
wls.runtime.serverRuntime.JVMRuntime.heapFreePercent < 20
「スケジュール済ポリシーの構成」および「イメージ・アクションの構成」を参照してください。また、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのポリシーとアクションの構成に関する項を参照してください。
WebLogic ServerにOracle HotSpotが構成され、Javaフライト・レコーダが有効化されている場合、診断イメージのキャプチャでJavaフライト・レコーダ・データも自動的にキャプチャされます。このデータは、診断イメージのキャプチャから抽出され、Java Mission Controlで表示できます。Javaフライト・レコーダが有効化されていない場合、またはWebLogic Serverに別のJVMが構成されている場合、診断イメージのキャプチャでJavaフライト・レコーダ・データは抽出されません。
ノート:
WebLogic ServerにHotSpotが構成されている場合、デフォルトでは、Javaフライト・レコーダは無効です。有効化方法の詳細は、「Oracle HotSpotでのJavaフライト・レコーダの使用」を参照してください。
キャプチャされるJavaフライト・レコーダ・データのボリュームは、WebLogic Server管理コンソールから構成できます。次の設定を指定できます。
ボリューム設定 | 説明 |
---|---|
|
Javaフライト・レコーダ診断イメージでのデータの収集を無効化します。 |
|
デフォルトで有効化されています。収集されるデータの詳細は、「Lowボリューム設定」を参照してください |
|
中程度の量のデータをキャプチャします。「Mediumボリューム設定」を参照してください。 |
|
詳細なデータをキャプチャします。「Highボリューム設定」を参照してください。 |
ノート:
診断ボリューム設定を使用して収集される診断データの対象となる特定イベント・セットは、WebLogic Serverの今後のリリースの変更に準拠します。
診断ボリュームの設定方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのWLDF診断ボリュームの構成に関する項を参照してください。WLSTを使用した例は、「例: WLDF診断ボリュームの設定」を参照してください。
デフォルトでは、Low
診断ボリューム設定が有効化されています。この設定では、基本情報が生成およびキャプチャされ、「緊急」、「アラート」または「クリティカル」レベルのログ・メッセージが記録されます。
WebLogic Serverの現在のリリースのLow
設定では、次のイベントがキャプチャされます。
ThrottleInformation WLDF Logging Snapshot WLDF LogRecord Snapshot WLDF WLLogRecord Snapshot Connector Activate Endpoint Connector Deactivate Endpoint Connector Inbound Transaction Rollback Connector Outbound Connection Closed Connector Outbound Connection Error Connector Outbound Destroy Connection Connector Outbound Register Resource Connector Outbound Release Connection Connector Outbound Reserve Connection Connector Outbound Transaction Rollback Connector Outbound Unregister Resource Deployment Complete Deployment Do Cancel Deployment Do Prepare Deployment Operation EJB Business Method Invoke EJB Business Method Post Invoke EJB Business Method Pre Invoke JDBC Connection Rollback JDBC Statement Execute JDBC Statement Execute Begin JDBC Transaction Rollback Servlet Invocation Servlet Request Run Servlet Request Run Begin Web Application Load Web Application Unload Webservices JAXRPC Client Request Webservices JAXRPC Client Response Webservices JAXRPC Dispatch Webservices JAXRPC Request Webservices JAXRPC Response Webservices JAXWS Endpoint Webservices JAXWS Request Webservices JAXWS Resource
Medium
診断ボリューム設定では、追加情報がキャプチャされ、「エラー」レベル以上のメッセージが記録されます。たとえば、Medium
およびHigh
ボリューム設定では、ユーザーIDがキャプチャされます(これらがキャプチャされると、Low
設定では発生しないパフォーマンスのオーバーヘッドが発生します)。
WebLogic Serverの現在のリリースのMedium
設定では、Low
設定でキャプチャされるイベントに加えて、次のイベントがキャプチャされます。
Connector Inbound Transaction Commit Connector Inbound Transaction Start Connector Outbound Transaction Commit Connector Outbound Transaction Start EJB Home Create EJB Home Remove EJB PoolManager Create EJB Pool Manager Post Invoke EJB Pool Manager Pre Invoke JDBC Connection Close JDBC Connection Commit JDBC Connection Create Statement JDBC Connection Get Vendor Connection JDBC Connection Prepare JDBC Connection Release JDBC Connection Reserve JDBC Data Source Get Connection JDBC Driver Connect JDBC Statement Creation Servlet Execute Servlet Request Dispatch Servlet Request Servlet Filter Servlet Async Action Servlet Context Execute Servlet Response Write Headers Servlet Response Send Servlet Stale Resource Servlet Check Access JMS BE Consumer Log
High
診断ボリューム設定では、詳細情報がキャプチャされ、「エラー」レベル以上のメッセージが記録されます。High
設定ではスタック・トレースもキャプチャされますが、スタック・トレースにより値が追加されるイベントについてのみです(たとえば、アプリケーション・コードを通常表示できるスタック・トレースは生成されますが、内部コードのみ表示するスタック・トレースおよびまったく変化しないスタック・トレースは生成されません)。
WebLogic Serverの現在のリリースのHigh
設定では、Medium
設定でキャプチャされるイベントに加えて、次のイベントがキャプチャされます。
EJB Database Access EJB Business Method Post Invoke Cleanup EJB Pool Manager Remove EJB Replicated Session Manager EJB Timer Manager JDBC Transaction Commit JDBC Transaction End JDBC Transaction Get XA Resource JDBC Transaction Is Same RM JDBC Transaction Prepare JDBC Transaction Start JTA Transaction Commit JTA Transaction End JTA Transaction Prepared JTA Transaction Prepare JTA Transaction Start Servlet Request Overload Servlet Request Cancel Servlet Context Handle Throwable
例6-1に、イメージ・キャプチャを生成するためのWLSTコマンドの例を示します。
例6-1 診断イメージを生成するためのWLSTコマンドのサンプル
url='t3://localhost:7001' username='system' password='password' server='myserver' timeout=120 connect(username, password, url) serverRuntime() cd('WLDFRuntime/WLDFRuntime/WLDFImageRuntime/Image') argTypes = jarray.array(['java.lang.Integer'],java.lang.String) argValues = jarray.array([timeout],java.lang.Object) invoke('captureImage', argValues, argTypes)
診断イメージ・キャプチャの構成は、ドメインのconfig.xml
ファイルに保持されます。
例6-2に示すように、config.xml
ファイル内では、イメージ・キャプチャはサーバーの<server>
要素の<server-diagnostic-config>
下位要素の配下に記述されます。
例6-2 診断イメージ・キャプチャの構成のサンプル
<domain> <!-- Other domain configuration elements --> <server> <name>myserver</name> <server-diagnostic-config> <image-dir>logs\diagnostic_images</image-dir> <image-timeout>2</image-timeout> </server-diagnostic-config> <!-- Other configuration details for this server --> </server> <!-- Other server configurations in this domain--> </domain>
ノート:
config.xml
ファイルは直接編集しないことをお薦めします。
診断イメージ・キャプチャ・コンポーネントは、様々なサーバー・サブシステムによって生成されたイメージをキャプチャおよび結合して、単一の.zip
ファイルにします。サーバー状態の最も一般的な情報をキャプチャするだけでなく、このコンポーネントは、たとえばJMS、JDBC、EJB、およびJNDIサブシステムによって生成されたイメージなど、すべてのサーバー・サブシステムからイメージをキャプチャします。
診断イメージ・キャプチャでは、以下のようなサーバーの状態の最も一般的な情報がキャプチャされます。
構成
ログ・キャッシュの状態
Java仮想マシン(JVM)
ワーク・マネージャの状態
JNDIの状態
最近収集されたデータ
WebLogic ServerにOracle HotSpotが構成され、Javaフライト・レコーダが有効化されている場合、診断イメージのキャプチャには、Java Mission Controlで表示できるJavaフライト・レコーダ・イメージFlightRecording.jfr
が含まれます。Javaフライト・レコーダ・イメージの内容には、Javaフライト・レコーダが元の使用可能なすべてのデータが含まれています。WLDFにより生成されるデータの量は、診断ボリュームの設定によって決まります。Javaフライト・レコーダを有効にすると、JVMによりデータが常に提供されます。オプションで、WebLogic Serverが提供するデータを含めることができます。Oracle Dynamic Monitoring System (DMS)など、Oracleの追加コンポーネントが元のデータもJavaフライト・レコーダ・イメージに含めることができます。
ノート:
次に注意してください:
診断イメージは、重大な障害を診断するためにサーバー・レベルの状態ダンプとして利用できる、サイズの大きなアーティファクトです。診断イメージは、構造化されたフォーマットで重要なデータを大量にキャプチャできるので、サポート部門のスタッフによる問題の解析に役立てることができます。
DMSなどのWebLogic Server環境内の非WebLogicイベント・プロデューサで、データを記録するようにJavaフライト・レコーダが構成されている場合、WLDF診断ボリュームの設定がOff
でも、WLDF診断イメージ・キャプチャには、記録されたデータを含むJavaフライト・レコーダ・イメージ・ファイルが含まれます。
WebLogic ServerにHotSpotが構成されている場合、Javaフライト・レコーダはデフォルトでは有効化されていません。有効化方法の詳細は、「Oracle HotSpotでのJavaフライト・レコーダの使用」を参照してください。
各イメージは、サーバー全体で1つのファイルとしてキャプチャされます。デフォルトの場所はSERVER_NAME
\logs\diagnostic_images
です。各イメージ・インスタンスには、次のように一意の名前が付けられます。
diagnostic_image_DOMAIN_SERVER_YYYY_MM_DD_HH_MM_SS.zip
ファイルには、少なくとも以下の情報が収められています。
診断イメージの作成日および作成時間
キャプチャリクエストのソース
診断イメージに含まれる各イメージ・ソースの名前と処理にかかった時間
JVMおよびOS情報(取得可能な場合)
コマンド・ライン引数(使用可能な場合)
WebLogic Serverのバージョン(パッチおよびビルド番号情報を含む)
「Javaフライト・レコーダの診断イメージ・キャプチャの構成」で説明されているように、WLDFにOracle HotSpotが構成されている場合、イメージには、Javaフライト・レコーダ・ファイルのFlightRecording.jfr
も含まれます。「診断イメージ・キャプチャのダウンロード用のWLSTオンライン・コマンド」で説明されているように、JFRファイルを抽出し、Java Mission Controlで表示できます。「Javaフライト・レコーダ・データの分析」を参照してください。
図6-1はイメージ・ファイルの内容を示します。この.zip
ファイル内のほとんどのファイルは、テキスト・エディタで開いて内容を確認できます。
WLSTオンラインでは、WLSTが接続されているサーバーから診断イメージのキャプチャをダウンロードするための次のコマンドが提供されます。
表6-1 イメージ・キャプチャのダウンロード用のWLSTコマンド
コマンド | サマリー |
---|---|
captureAndSaveDiagnosticImage |
診断イメージをキャプチャし、ローカルにダウンロードします。 |
getAvailableCapturedImages |
サーバーで構成されているイメージ保存先ディレクトリ内に作成された診断イメージのリストを返します。 |
saveDiagnosticImageCaptureFile |
指定した診断イメージのキャプチャ・ファイルをダウンロードします。 |
saveDiagnosticImageCaptureEntryFile |
診断イメージ・キャプチャ内の特定のエントリをダウンロードします。Java Mission Controlで表示するJavaフライト・レコーダ診断データを取得するときにこのコマンドが特に役立ちます。 |
これらのコマンドの詳細および使用例は、WebLogic ServerのWLSTコマンドのリファレンスの診断コマンドに関する項を参照してください。診断イメージのリストを戻し、その中のJFRファイルを取得するWLSTスクリプトの例は、「WebLogic Scripting Toolのサンプル」を参照してください。