プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使用
12c (12.2.1)
E69998-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 診断イメージの構成とキャプチャ

この章では、キャプチャ時のサーバー内部の実行時状態について診断スナップショット(またはダンプ)を作成できる、WebLogic診断フレームワーク(WLDF)の診断イメージ・キャプチャ・コンポーネントについて説明します。この情報は、サーバー障害の原因の分析に役立ちます。

WebLogic ServerにOracle HotSpotが構成され、Javaフライト・レコーダが有効化されている場合、診断イメージのキャプチャには、Java Mission Controlで表示できるWebLogic Server診断データが含まれます。詳細は、「Oracle HotSpotでのJavaフライト・レコーダの使用」を参照してください。

この章には次の項が含まれます:

イメージ・キャプチャの開始方法

診断イメージ・キャプチャは、以下のいずれかによって開始されます。

  • 構成されたポリシー・アクション。第11章「アクションの構成」を参照してください。

  • WebLogic Server管理コンソールでユーザーが開始したリクエスト(および、サードパーティの診断ツールから開始されたリクエスト)。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプ診断イメージの構成とキャプチャに関する項を参照してください。

  • JMXによるAPIの直接呼出し。例6-1を参照してください。

  • WLSTコマンド

診断イメージ・キャプチャの構成

診断イメージ・キャプチャは、主に障害発生後の解析ツールとして利用するものなので、どのような情報をキャプチャするかについては限られた権限しか与えられていません。診断イメージ・キャプチャで指定可能な構成オプションは次のとおりです。

  • イメージの宛先

  • デフォルトの宛先とは別の宛先(指定したキャプチャの場合)

  • サーバーの障害発生から回復までにイメージがキャプチャされる頻度を設定するロックアウト(タイムアウト)期間

  • Javaフライト・レコーダ・ファイルでキャプチャされるWebLogic Serverイベント情報のボリュームを決定するWLDF診断ボリューム。

他のWLDFコンポーネントと同様に、診断イメージ・キャプチャは、WebLogic Server管理コンソール(Oracle WebLogic Server管理コンソール・オンライン・ヘルプ診断イメージの構成とキャプチャに関する項を参照)やWebLogic Scripting Tool (WLST)を使用して、またはプログラムで構成できます。


注意:

多くの場合、サーバー障害の発生時に診断イメージ・キャプチャを生成するのが有効です。これを行うには、サーバーの状態がFAILEDに変更されたときにtrueに評価されるようにポリシーを設定し、ポリシーにイメージ・アクションを関連付けます。

Java ELポリシー式は次のとおりです。

(wls.runtime.serverRuntime.state == "FAILED")

詳細は、「スケジュール済ポリシーの構成」および「イメージ・アクションの構成」を参照してください。Oracle WebLogic Server管理コンソール・オンライン・ヘルプポリシーおよびアクションの構成に関する項も参照してください。


WLDF診断ボリュームの構成

WebLogic ServerにOracle HotSpotが構成され、Javaフライト・レコーダが有効化されている場合、診断イメージのキャプチャでJavaフライト・レコーダ・データも自動的にキャプチャされます。このデータは、診断イメージのキャプチャから抽出され、Java Mission Controlで表示できます。Javaフライト・レコーダが有効化されていない場合、またはWebLogic Serverに別のJVMが構成されている場合、診断イメージのキャプチャでJavaフライト・レコーダ・データは抽出されません。


注意:

WebLogic ServerにHotSpotが構成されている場合、デフォルトでは、Javaフライト・レコーダは無効です。有効化方法の詳細は、「Oracle HotSpotでのJavaフライト・レコーダの使用」を参照してください。

キャプチャされるJavaフライト・レコーダ・データのボリュームは、WebLogic Server管理コンソールから構成できます。次の設定を指定できます。

ボリューム設定 説明
Off Javaフライト・レコーダ診断イメージでのデータの収集を無効化します。
Low デフォルトで有効化されています。収集されるデータの詳細は、「Lowボリューム設定」を参照してください。
Medium 中程度の量のデータをキャプチャします。詳細は、「Mediumボリューム設定」を参照してください。
High 詳細なデータをキャプチャします。詳細は、「Highボリューム設定」を参照してください。


注意:

診断ボリューム設定を使用して収集される診断データの対象となる特定イベント・セットは、WebLogic Serverの今後のリリースの変更に準拠します。

診断ボリュームの設定方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプWLDF診断ボリュームの構成に関する項を参照してください。WLSTを使用した例は、「例: WLDF診断ボリュームの設定」を参照してください。

Lowボリューム設定

デフォルトでは、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診断ボリューム設定では、追加情報がキャプチャされ、「エラー」レベル以上のメッセージが記録されます。たとえば、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診断ボリューム設定では、詳細情報がキャプチャされ、「エラー」レベル以上のメッセージが記録されます。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

イメージ・キャプチャ生成用のWLSTコマンド

例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)

サーバーの構成における診断イメージ・キャプチャの永続化

診断イメージ・キャプチャの構成は、例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ファイルは直接編集しないことをお薦めします。

キャプチャされたイメージ・ファイルの内容

診断イメージ・キャプチャでは、以下のようなサーバーの状態の最も一般的な情報がキャプチャされます。

  • 構成

  • ログ・キャッシュの状態

  • Java仮想マシン(JVM)

  • ワーク・マネージャの状態

  • JNDIの状態

  • 最近収集されたデータ

診断イメージ・キャプチャ・コンポーネントは、様々なサーバー・サブシステムによって生成されたイメージをキャプチャおよび結合して、単一の.zipファイルにします。サーバー状態の最も一般的な情報をキャプチャするだけでなく、このコンポーネントは、たとえばJMS、JDBC、EJB、および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ファイル内のほとんどのファイルは、テキスト・エディタで開いて内容を確認できます。

図6-1 イメージ・ファイル

図6-1の説明が続きます
「図6-1 イメージ・ファイル」の説明

診断イメージ・キャプチャのダウンロード用のWLSTオンライン・コマンド

WLSTオンラインでは、WLSTが接続されているサーバーから診断イメージのキャプチャをダウンロードするための次のコマンドが提供されます。

表6-1 イメージ・キャプチャのダウンロード用のWLSTコマンド

コマンド サマリー
captureAndSaveDiagnosticImage

診断イメージをキャプチャし、ローカルにダウンロードします。

getAvailableCapturedImages

サーバーで構成されているイメージ保存先ディレクトリ内に作成された診断イメージのリストを返します。

saveDiagnosticImageCaptureFile

指定した診断イメージのキャプチャ・ファイルをダウンロードします。

saveDiagnosticImageCaptureEntryFile

診断イメージ・キャプチャ内の特定のエントリをダウンロードします。Java Mission Controlで表示するJavaフライト・レコーダ診断データを取得するときにこのコマンドが特に役立ちます。


これらのコマンドの詳細および使用例は、WebLogic ServerのWLSTコマンドのリファレンスの診断コマンドに関する項を参照してください。診断イメージのリストを戻し、その中のJFRファイルを取得するWLSTスクリプトの例は、付録F「WebLogic Scripting Toolのサンプル」を参照してください。