15 SOAコンポジット・アプリケーションに関する問題の診断
この章の内容は次のとおりです。
トラブルシューティングの詳細は、「Oracle SOA SuiteとOracle BPM Suiteのトラブルシューティング」を参照してください。
ノート:
この章で説明する情報は、Oracleデータベースにのみ適用されます。Oracle以外のデータベースを使用する場合は、動作や結果が異なります。
診断フレームワークの概要
Oracle SOA Suiteで問題を監視および診断する場合、次の困難に直面します。
-
システムがハングする瞬間に複数のスレッド・ダンプを取得したり、メモリー不足になる前にヒープ・ダンプを取得するなど、特に断続的な問題の発生の瞬間での診断データの取得(ジャストインタイム診断とも呼ばれる)
-
データ形状(SOAスキーマとMDSスキーマの状態および増加パターンによる件数)などの詳細情報の取得
-
バージョン、ログ、構成ファイル、適用パッチなどの基本情報を提供するためのOracleサポート・サービスとの相互の通信
-
問題が拡大する前の早期の検出と修正処理の適用
これらの困難に取り組むために、Oracle SOA Suiteは、問題の早期特定および適切な修正処理の適用を支援する次の診断フレームワークと統合されます。
-
WLDF: 監視および通知を使用して診断シナリオを監視します。
-
診断フレームワーク: 表示および分析のために書式設定されたSOA固有の診断情報を収集するために使用します。これらのデータ・ダンプは、サービス・リクエスト(SR)の一部としてアップロードできます。
WLDFの概要
WLDFは、Oracle WebLogic Serverに組み込まれている監視と診断を行うフレームワークであり、サーバー・プロセス内で稼働してサーバーの標準的なライフサイクルの一部となる一連のサービスを定義および実装します。
WLDFを使用して、Oracle SOA Suiteから診断データを取得できます。ランタイム・ログおよびメトリックを監視するために、Oracle WebLogic Server管理コンソールからWLDFの監視および通知を構成します。このデータにより、障害の発生時に、障害の分離と診断が可能になります。
WLDFの詳細は、『Oracle WebLogic Server診断フレームワークの構成と使用』を参照してください。
監視および通知の概要
監視は、サーバーおよびアプリケーションの状態を監視して、設定した基準に基づいて通知を送信します。監視と通知は、ドメイン内の1つ以上のサーバー・インスタンスを対象にした診断モジュールの一部として構成します。監視を作成する場合は、Oracle WebLogic Server管理コンソールでOracle SOA SuiteおよびOracle WebLogic Server MBeanの属性を使用して、監視するためのルール式を作成します。
たとえば、空きヒープ・メモリーの割合が25%未満になった場合に通知を送信するとします。Oracle WebLogic Server MBean weblogic.management.runtime.JRockitRuntimeMBean
およびその属性HeapFreePercent
を使用する監視を作成します。次に、HeapFreePercent
が100%未満の場合に通知を受け取る必要があることを示すロジックを定義します。JRockit仮想マシン(VM)以外で稼働している場合は、MBean JVMRuntimeMBean
を使用することもできます。
Oracle WebLogic Server管理コンソールでの監視および通知の作成方法は、「監視および通知の作成」および『Oracle Fusion Middlewareの管理』の診断フレームワークの構成に関する項を参照してください。
診断シナリオおよびMBeanの概要
作成する監視ルール式は、Oracle SOA SuiteおよびOracle WebLogic Server MBeanの属性を使用して、データを収集し、監視を実行します。シナリオの診断には、そのシナリオに関する統計の提供に利用可能なMBeanやメッセージのログ出力に利用可能なMBeanを使用します。マネージドBean (MBean)は分散環境でJMX管理可能なリソースを表すJavaオブジェクトです。次のMBeanの属性は、シナリオを監視するための監視の定義に使用できます。
-
Oracle WebLogic Server MBean
-
診断用Oracle SOA Suite MBean
-
MBeansとして公開されるダイナミック・モニタリング・サービス(DMS)メトリック
Oracle SOA Suiteには、監視や通知を使用して監視できる様々な診断シナリオが用意されています。表15-1に、サポートされている診断シナリオおよび監視に使用できるMBeanの詳細を示します。
表15-1 サポートされる診断シナリオおよびMBean
シナリオ | 説明 | 診断データ・ソース |
---|---|---|
メモリーの問題(起動、デプロイメントおよび実行時) |
使用可能な空きヒープを監視します。空きヒープの割合がしきい値未満の場合、スレッド・スタック・ダンプおよびヒープ・ダンプを生成するために通知がトリガーされます。 |
Oracle WebLogic Server MBean |
デプロイメントのハング |
デプロイメントの経過時間を監視します。しきい値を超えると、通知がトリガーされます。 |
Oracle SOA SuiteデプロイメントMBean |
データ・ソースの問題 |
一時停止および接続プール/トランザクションのタイム・アウトを監視します。 |
JDBC MBean |
サーバーの過負荷 |
自動でサーバーの状態を監視します。 |
Oracle WebLogic Server MBean |
スタック・スレッド |
スタック・スレッドを監視します。検出すると、通知がトリガーされます。 |
スタック・スレッド監視/診断フレームワーク通知は自動的に組み込まれます。診断フレームワーク・インシデント・パッケージは、ADRコマンド・インタプリタ(ADRCI)などのツールを使用して作成できます。インシデントは自動的に作成されます。 |
表15-2に、診断データを監視および収集するための監視を作成するときに選択する、使用可能なMBeanおよびDMSメトリックの一部を示します。
表15-2 MBeanおよびDMSメトリック
診断データ・ソース(MBean)および使用方法 | 説明 | Oracle WebLogic Server MBean | SOA MBeanまたはDMSメトリック |
---|---|---|---|
|
メモリー統計用 |
はい |
- - |
|
デプロイメント経過時間用 |
- - |
SOA MBean |
|
ヘルス状態情報用 |
はい |
- - |
|
JDBCデータ・ソース用およびトランザクション・ランタイム特性のアクセス用 |
はい |
- - |
Oracle WebLogic Server MBeanの詳細は、Oracle WebLogic Server MBeanリファレンスを参照してください。
診断フレームワークの概要
診断フレームワークは、問題の検出、診断および解決に役立つOracle Fusion Middlewareの機能です。対象としている問題は、コードのバグ、メタデータの破損、顧客データの破損、スレッドのデッドロック、一貫性のない状態に起因する障害などのクリティカル・エラーです。診断フレームワークは重大なエラーを検出し、関連する診断情報(ログ、メトリック、サーバー・イメージなど)のダンプを取得します。WLDFの監視および通知は、診断フレームワークが適切なデータ・ダンプをリスニングおよび生成するイベントをトリガーします。ダンプは、表示および分析用にインシデント・パッケージに書式設定されます。
インシデントとして取得される問題には、表15-1で説明されているようなクリティカル・エラーが含まれます。各インシデント・パッケージは一意のIDで識別されます。クリティカル・エラーが発生すると、この一意のID(インシデント番号として知られている)が割り当てられます。エラーの診断データ(ログ・ファイルなど)は、この番号で即時に取得され、タグが設定されます。
その後、データは自動診断リポジトリ(ADR)に格納されます。ADRは、エラーの発生および関連する診断データの記憶域をカタログ化するためのファイルシステム・リポジトリです。データは、インシデント・パッケージ番号で取得して書式設定した後、ADRCIなどのOracleツールで表示し、分析されます。
ADRCIではダンプ・ファイルの名前を表示できます。このビューでは、問題を調査し、新たな障害の診断データをパッケージ化してOracleサポート・サービスにアップロードできます。
診断フレームワークのWLSTコマンドを使用して、次のタスクを実行することもできます。
-
問題の問合せ
-
インシデント・ダンプ・ファイルの表示
-
手動インシデントの作成
-
ダンプの手動実行
診断フレームワークはすべてのJRF対応プラットフォームでサポートされています。
診断フレームワークには、Oracle WebLogic ServerおよびOracle SOA Suite両方のための選択された診断ダンプが含まれます。これらのダンプの詳細は、『Oracle Fusion Middlewareの管理』の問題の調査、報告および解決に関する項を参照してください。
これらのダンプに加え、Oracle SOA Suiteの様々なダンプもサポートされています。Oracle SOA Suiteのダンプの詳細は、「Oracle SOA Suite診断ダンプの実行」を参照してください。
問題の解決、インシデント、WLDFと診断フレームワークの統合の詳細は、『Oracle Fusion Middlewareの管理』の「問題の診断」を参照してください。
ADRの詳細は、「ADRツールでのインシデント・パッケージの表示」を参照してください。
インシデント・パッケージ数の制御
Oracle SOA Suiteに繰り返し発生する問題があると、複数のインシデント・パッケージが作成される可能性があります。多数のエラーが発生している場合にサーバーの過負荷を防止する目的で、診断フレームワークでは一部のインシデントが自動的にフラッド制御されます。この問題を回避するために、生成されるインシデント・パッケージ数を制限するように診断フレームワークを構成できます。詳細は、Oracle Fusion Middlewareの管理の診断フレームワークの構成を参照してください。
事前定義済のインシデント処理ルール
Oracle WebLogic Server管理コンソールで監視を作成する場合は、通知も定義します。FMWDFW通知という通知は自動的に選択可能になります。独自の通知を作成することも可能ですが、FMWDFW通知では、「Oracle SOA Suite診断ダンプの実行」で説明されているOracle SOA Suiteのダンプが作成されるため、この通知を選択することをお薦めします。
エラーが検出されると、FMWDFW通知ハンドラがインシデントを作成し、診断フレームワークがインシデント処理セマンティクスを担当します。これらのセマンティクスは、インシデント処理ルールによって制御されます。インシデント処理ルールはXMLファイルに定義され、SOAインフラストラクチャの起動時にロードされて、診断フレームワークに登録されます。
表15-1に示したシナリオとは異なるシナリオに直面した場合は、Oracleサポート・サービスと連携して、カスタマイズされたインシデント処理ルール・ファイルのコピーを取得する必要があります。カスタマイズされたルール・ファイル(custom-rules.xml
など)は、次のいずれかの場所に配置できます。
-
サーバー・レベルの構成:
FMW_HOME
/user_projects/
domains/
domain_name
/config/fmwconfig/servers/
server_name
/dfw
-
ドメイン・レベルの構成:
FMW_HOME
/user_projects/
domains/
domain_name
/config/fmwconfig
/dfw
診断フレームワークはサーバー起動時にファイルを自動的にロードします。ファイル名の接頭辞としてアプリケーション名が指定されている場合を除き、すべてのダンプはシステム・スコープ指定として登録されます。
-
myrules.xml
: システム・スコープ指定。これは、ルール・ファイルがSOAインフラストラクチャのすべてのSOAコンポジット・アプリケーションに適用されることを意味します。 -
application_name
#
name
.xml
: アプリケーション・スコープ指定。#
の前の文字列はすべてアプリケーション名としてみなされます。ルール・ファイルをアプリケーションと関連付けるには、そのアプリケーションがOracle WebLogic Serverconfig.xml
ファイル内に独自のデプロイメントを持っている必要があります。SOAコンポジット・アプリケーションには、Oracle WebLogic Serverデプロイメントとしての独自のエントリはありません。そのため、それにDiagnostic Frameworkルール・ファイルを関連付けることはできません。たとえば、myrules.xml
はOracle WebLogic Serverにスコープ指定されており、ルート・レベルの診断ダンプのみを生成できます。soa-infra#rules.xml
はSOAにスコープ指定されており、SOA診断ダンプを生成できます。両方ともSOAコンポジット・アプリケーション・エラーからのインシデントを生成できます。
さらに、サーバーを再起動しないでSOAインフラストラクチャにルール・ファイルを動的にロードすることもできます。サーバーの再起動によって収集された診断データの正確さが損なわれる可能性があるため、動的リロードは重要です。
サーバーを再起動しないで動的にファイルをリロードするには、次のWLSTコマンドを入力します。
wls:/soainfra/serverConfig> reloadCustomRules(name='rule_file')
次の例は、サンプルのカスタム・ルール・ファイルを示しています。oracle.soa.bpel.engine.ws
モジュールの*-diagnostic.log
にERROR
レベル・メッセージが見つかった場合、soa.composite.trail
診断ダンプが実行されます。ルールをロードするためにシステムを再起動すると、収集された診断データの正確さが実際に損なわれます。
<?xml version="1.0" encoding="UTF-8"?>
<diagnosticRules xmlns="http://www.oracle.com/DFW/DiagnosticsFrameworkRules"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<logDetectionConditions>
<condition module="oracle.soa.bpel.engine.ws"/>
</logDetectionConditions>
<defaultActions>
<dumpAction name="soa.composite.trail">
<argument name="ecid" value="ECID" valueType="Fact" mandatory="true"/>
</dumpAction>
</defaultActions>
</diagnosticRules>
Oracle SOA Suite診断ダンプの実行
Oracle WebLogic Serverで使用可能な診断ダンプに加え、Oracle SOA Suiteでは、表15-3に示す診断ダンプの作成をサポートしています。
表15-3 Oracle SOA Suite診断ダンプ
ダンプ | 説明 |
---|---|
|
ランタイム環境のダンプ。 |
|
ランタイム・プラットフォーム構成のダンプ。 |
|
データベースのダンプ。 |
|
デプロイされたコンポジット・メタデータのダンプ。 |
|
インスタンス監査証跡のダンプ。 |
|
イベントのダンプ。 |
|
デプロイされたコンポジットWSDL/スキーマ・キャッシュのダンプ。 |
|
静的ダンプ(システム、呼出し、エンジンおよび監査スレッド数)ならびにランタイムのスケジュール済メッセージ数と稼働中メッセージ数のダンプ。 |
|
平均インスタンス処理時間のダンプ。 |
|
平均インスタンス処理遅延のダンプ(非同期プロセス用)。 |
|
同期ビジネス・プロセス・ダンプ統計(最小、最大および平均処理時間(ミリ秒単位)など)、ならびに処理されたインスタンスの数。 |
|
非同期BPELプロセス・ダンプ統計(最小、最大および平均処理時間(ミリ秒単位)など)、ならびに処理されたインスタンスの数。 |
|
リクエスト・レベルのダンプ統計(最小、最大および平均処理時間(ミリ秒単位)など)、ならびにBPELプロセス・サービス・エンジンの各種レイヤーを通して流れながら処理されたリクエストの数。 |
|
リシーケンサ・グループ処理遅延のダンプ。 |
|
アダプタの接続ファクトリの構成。複数のコンポジットが同じJava Naming and Directory Interface (JNDI)を使用しているかどうかを識別するために使用します。 |
|
JCAアダプタの接続プール統計と接続プール・リーク。現在のオープン接続の統計が表示され、接続プールのチューニングを行うことができます。 |
|
アダプタDMSの統計(メッセージ・サイズ、フォルト数など)。 |
診断フレームワークは診断のダンプを出力および記録します。WLSTのlistDumps
およびdescribeDump
コマンドを使用して、診断ダンプすべての詳細を表示できます。
ノート:
MW_HOME
/oracle_common/common/bin
からWLST
を起動する必要があります。そうしない場合、ODF機能はありません。
./wlst.sh
ダンプのリスト
ダンプをリストするには:
-
SOAインフラストラクチャがインストールされている管理対象サーバーに接続します。
wls:/offline>connect('user_name','password','t3://myhost.us.example.com:8001') Connecting to t3://myhost.us.example.com:8001 with userid user_name ... Successfully connected to managed Server "soa_server1" that belongs to domain "soainfra".
-
診断フレームワークのダンプのリストを表示します。
wls:/soainfra/serverConfig> listDumps() odl.activeLogConfig jvm.classhistogram dms.ecidctx jvm.flightRecording wls.image odl.logs dms.metrics odl.quicktrace http.requests jvm.threads
特定のダンプのヘルプを表示するには、
describeDump(name=dumpName)
コマンドを使用します。 -
Oracle SOA Suiteのダンプのリストを表示します。
wls:/soainfra/serverConfig> listDumps(appName='soa-infra') adf.ADFConfigDiagnosticDump adf.ADFConfigPropertiesDump bpel.apd bpel.apt bpel.dispatcher mediator.resequencer soa.adapter.connpool soa.adapter.ra soa.adapter.stats soa.composite soa.composite.trail soa.config soa.db soa.edn soa.env soa.wsdl webservices.servlet
特定のダンプのヘルプを表示するには、
describeDump(name=dumpName)
コマンドを使用します。Oracle SOA Suiteダンプは、この章の後述の項で説明します。
診断フレームワーク・ダンプの詳細は、『Oracle Fusion Middlewareの管理』の「ログ・ファイルと診断データの管理」を参照してください。
ランタイム環境の診断ダンプ(soa.env)
表15-4に、ランタイム環境の診断ダンプの詳細を示します。
表15-4 ランタイム環境診断のダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
|
ランタイム・プラットフォーム構成の診断ダンプ(soa.config)
表15-5に、ランタイム・プラットフォーム構成の診断ダンプの詳細を示します。
表15-5 ランタイム・プラットフォーム構成診断のダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
サービス・エンジンの構成: 次の構成はMDSに保持されます(
|
データベース診断ダンプ(soa.db)
表15-6に、データベース診断ダンプの詳細を示します。取得されるデータベース情報のタイプには、Oracle SOA SuiteスキーマおよびMDSスキーマに関する状態別の件数や増加パターンなどのデータ形状情報が含まれます。
表15-6 データベース診断のダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
JDBCベースのアクセスを使用して問合せを実行し、結果をダンプしたBPELデータベース表増加データ SELECT dt.table_name table_name,ds.bytes/1024/1024 segment_size_mb, ds.extents extents_used, dt.num_rows total_rows, to_char(dt.last_analyzed,'YYYY-MM-DD HH24:MI:SS') last_analyzed_date FROM dba_segments ds, dba_tables dt WHERE dt.owner = ds.owner and dt.owner = 'schema_user_name' and dt.tablespace_name = ds.tablespace_name and dt.table_name = ds.SEGMENT_NAME and ds.segment_type = 'TABLE' and dt.table_name in ('CUBE_INSTANCE', 'MEDIATOR_CASE_INSTANCE','COMPOSITE_ INSTANCE', 'AUDIT_TRAIL', 'WORK_ITEM', 'DLV_MESSAGE', 'XML_DOCUMENT','DOCUMENT_CI_REF') |
デプロイ済コンポジット・メタデータの診断ダンプ(soa.composite)
表15-7に、デプロイ済コンポジット・メタデータの診断ダンプの詳細を示します。取得される情報のタイプには、インシデントの発生時に処理された現在のコンポジット、MDSアーティファクト参照(たとえば、ネームスペース・エクスポート)および異常のあるトランザクションが含まれます。
表15-7 デプロイ済コンポジット・メタデータ診断のダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
MDSからのコンポジット・メタデータには、次のものが含まれます。
|
インスタンス監査証跡の診断ダンプ(soa.composite.trail)
表15-8に、インスタンス監査証跡の診断ダンプの詳細を示します。取得される情報のタイプには、ビジネス・フロー・インスタンスの監査証跡、個々のサービス・コンポーネントの監査証跡、フォルトおよびECIDによって識別されるメッセージ・フローに関連付けられたセンサー情報があります。
表15-8 インスタンス監査証跡診断のダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
|
イベント診断ダンプ(soa.edn)
表15-9に、イベント診断ダンプの詳細を示します。取得される情報のタイプには、EDNビジネス・イベント・バス・ステータス情報およびEDNデータベース・ログ・レコードが含まれます。
表15-9 イベント診断のダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
すべての情報はダンプ・テキスト・ファイルに書き込まれます。 |
デプロイ済コンポジットWSDL/スキーマ・キャッシュの診断ダンプ(soa.wsdl)
表15-10は、指定のパラメータ(コンポジット名、パーティションおよびリビジョン)に一致するコンポジットについてキャッシュされたサービス定義情報の詳細を示します。
表15-10 デプロイ済コンポジットWSDL/スキーマ・キャッシュ診断のダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
|
ディスパッチャの静的構成の診断ダンプ(bpel.dispatcher)
表15-11に、ディスパッチャの静的構成の診断ダンプの詳細を示します。
表15-11 ディスパッチャの静的構成の診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
静的プール構成(ディスパッチャ構成)
ランタイム・メッセージ・キュー・サイズ:
ランタイム・メッセージ・キューのブレークダウン・サイズ(処理済メッセージ合計数、エラーが発生したメッセージの合計数、メッセージの平均保留時間および平均実行時間):
|
WLSTコマンド(ダンプの説明および実行)
この項で説明されているWLSTコマンドに加え、システムMBeanブラウザを通してディスパッチャの静的構成の診断情報を取得することもできます。このオプションでは、起動キュー、配信キューおよびインスタンス・キューのスケジュール済メッセージと稼働中メッセージに関するより具体的な詳細を取得できます。詳細は、「システムMBeanブラウザを使用したディスパッチャの静的構成の診断ダンプの取得」を参照してください。
システムMBeanブラウザを使用したディスパッチャの静的構成の診断ダンプの取得
「readXMLDispatcherTrace」プロパティを呼び出すことで、ディスパッチャの静的構成の診断ダンプをシステムMBeanブラウザに表示することもできます。このオプションでは、起動キュー、配信キューおよびインスタンス・キューの現在処理中のメッセージや処理がスケジュールされたメッセージに関して、WLST executeDump
コマンド(「WLSTコマンド(ダンプの説明および実行)」を参照)で取得するより具体的な詳細を取得できます。
平均インスタンス処理時間の診断ダンプ(bpel.apt)
表15-12に、インスタンス平均処理時間の診断ダンプの詳細を示します。この情報は、BPELプロセス・サービス・エンジンに保持されるインスタンスの作成および最終変更のタイムスタンプから取得されます。
表15-12 インスタンス平均処理時間の診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
様々なプロセスのインスタンスが実行時に必要とする平均時間。この情報は永続ストアから取得され、プロセスが呼び出したパートナの所要時間を含みます。平均時間は秒単位です。 |
平均インスタンス処理遅延の診断ダンプ(bpel.apd)
表15-13は、非同期プロセスの平均インスタンス処理遅延の診断ダンプの詳細を示します。このダンプは、BPELプロセス・サービス・エンジンがデータベースから保存されているメッセージを取り出してそのメッセージの処理を開始するまでの平均所要時間を示します。この統計は、インメモリーからではなく、データベースから生成されます。
表15-13 平均インスタンス処理遅延の診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
プロセス・インスタンスをトリガーする受信メッセージの受信からBPELサービス・エンジンが実際にメッセージの処理を開始するまでの起動処理の平均遅延。 ノート: 「平均インスタンス処理時間の診断ダンプ(bpel.apt)」で説明されているダンプは、プロセス・インスタンスの合計実行時間を示します。これは、アクティビティを処理するための時間の関数で、パートナ(1つ以上がコールされている場合)の所要時間も含まれます。ただし、受信メッセージは処理される前にまず非同期通信用のデータベースに格納されるため、システムのボトルネックを診断するためにより具体的な詳細が必要とされる場合があります。したがって、データベースからメッセージを選択するBPELプロセス・サービス・エンジンの遅延の詳細も、 このダンプ情報は、インメモリーからではなく、データベースから生成されます。BPELプロセス・サービス・エンジンの各種レイヤーでの遅延に関するさらなる詳細とより効果的な分析については、「「リクエストのブレークダウン」表の下位レベルの詳細の表示」を参照してください。 |
同期プロセス統計の診断ダンプ(bpel.sps)
表15-14は、同期プロセス統計の診断ダンプの詳細を示します。このダンプは、最小、最大および平均処理時間(ミリ秒単位)、ならびに処理されたインスタンスの数を示します。「「リクエストのブレークダウン」表の下位レベルの詳細の表示」で説明されているシステムMBeanブラウザの「StatsLastN」プロパティを、この診断ダンプを取得するように構成する必要があります。ただし、オプションのダンプ・パラメータのduration
とbuffer
が指定されており、「StatsLastN」が構成されていない場合、このダンプ・コマンドはスループット(毎秒のトランザクション数)の統計情報を提供します。
表15-14 同期プロセス統計の診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
同期プロセスの最小、最大および平均処理時間(ミリ秒単位)、ならびに処理されたインスタンスの数。 |
非同期プロセス統計の診断ダンプ(bpel.aps)
表15-15は、非同期プロセス統計の診断ダンプの詳細を示します。このダンプは、プロセス・レベル(非同期BPELプロセスのみ)の統計(最小、最大および平均処理時間(ミリ秒単位)など)、ならびに処理されたインスタンスの数を提供します。「「リクエストのブレークダウン」表の下位レベルの詳細の表示」で説明されているシステムMBeanブラウザの「StatsLastN」プロパティを、この出力を取得するように構成する必要があります。ただし、オプションのパラメータのduration
とbuffer
が指定されており、「StatsLastN」が構成されていない場合、このダンプ・コマンドはスループット(毎秒のトランザクション数)の統計情報を提供します。
表15-15 非同期プロセス統計の診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
非同期プロセスの最小、最大および平均処理時間(ミリ秒単位)、ならびに処理されたインスタンスの数。 |
リクエスト統計の診断ダンプ(bpel.rs)
表15-16に、リクエスト診断ダンプの詳細を示します。このダンプは、最小、最大および平均処理時間(ミリ秒単位)、ならびにBPELプロセス・サービス・エンジンの各種レイヤーを通して流れながら処理されたリクエストの数を示します。「「リクエストのブレークダウン」表の下位レベルの詳細の表示」で説明されているシステムMBeanブラウザの「StatsLastN」プロパティを、この診断ダンプを取得するように構成する必要があります。ただし、オプションのダンプ・パラメータのduration
とbuffer
が指定されており、「StatsLastN」が構成されていない場合、このダンプ・コマンドはスループット(毎秒のトランザクション数)の統計情報を提供します。
表15-16 リクエスト統計の診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
最小、最大および平均処理時間(ミリ秒単位)、ならびにBPELプロセス・サービス・エンジンの各種レイヤーを通して流れながら処理されたリクエストの数。 |
リシーケンサ・グループ処理遅延の診断ダンプ(mediator.resequencer)
表15-17は、リシーケンサ・グループ処理遅延の診断ダンプの詳細を示します。
表15-17 リシーケンサ・グループ処理遅延の診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
グループ情報:
コンテナ情報:
|
アダプタ診断ダンプ(soa.adapter.ra)
表15-18に、接続ファクトリ構成のダンプの詳細を示します。
表15-18 アダプタ診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
接続ファクトリ情報をダンプします。
複数のコンポジットが同じJNDIを使用しているかどうかを示します。 |
アダプタ診断ダンプ(soa.adapter.connpool)
表15-19はアダプタ接続プールのダンプを示します。
表15-19 アダプタ診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
構成された接続ファクトリJNDIの接続プール統計をダンプします。 |
アダプタ診断ダンプ(soa.adapter.stats)
表15-20はアダプタ診断ダンプを示します。
表15-20 アダプタ診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
|
|
SOAコンポジット・アプリケーションの診断フレームワーク・スレッド・ダンプの実行
スレッド・ダンプが必要な問題を診断する際は、スレッド・アクティビティに関する十分なコンテキストがあると役立ちます。診断フレームワーク・ダンプjvm.threads
は、SOAコンポジット・アプリケーションのDMS実行コンテキスト(EC)スレッド・スタック・データを提供します。次のプロパティは、ビジネス・フロー・インスタンスの実行が開始されると挿入され、HTTPリクエストが完了するとリセットされます。
-
composite_name
-
component_name
-
composite_instance_id
-
activity_name
(BPELプロセスで実行されるアクティビティをリストします。名前のないアクティビティ(スコープ・アクティビティなど)は取得されません。)
jvm.threads
ダンプを実行すると、この情報が表形式で出力されます。このダンプは、jvm.threads
ダンプの実行時にそれぞれのスレッドがどこにあるかを識別します。
これは、どのSOAコンポジット・アプリケーションの処理が低速かを診断するうえで役立ちます。
WLSTコマンド(ダンプの説明および実行)
===== THREAD CONTEXT INFORMATION ===== id ECID RID Context Values ------- ------------------------------------------------------------- ----- --------------- id=23 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-0000000000001d3f 0:1 WEBSERVICE_ PORT.name=CatchException_pt composite_name=ExceptionHandler!1.0 J2EE_MODULE.name=fabric component_name=CommsUtilityWS WEBSERVICE_NAMESPACE.name=http://xmlns. oracle.com/ExceptionHandler/CatchException J2EE_APP.name=soa-infraWEBSERVICE.name= catchexception_client_ep composite_instance_id=1 id=61 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-000000000000003c 0 id=70 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-0000000000001e84 0 id=2170 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-0000000000001d3f 0 DSID=0000Ĵ2fPtuDSc Y5Hro2yf1G8M9Z000002 id=1616 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-0000000000000004 0 id=2179 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-000000000000002b 0 dbRID=0:10 id=2195 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-0000000000001e7e 0 dbRID=0:2 id=2196 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-0000000000001e82 0 dbRID=0:2 id=2197 e6e3527fc0d0bfd2:-6c720372:139026855d8:-8000-0000000000001e80 0 dbRID=0:5 ===== END OF THREAD CONTEXT INFORMATION =====
この情報はAdminServer-diagnostic.log
ファイル・ログで参照することもできます。
jvm.threads
ダンプの詳細は、『Oracle Fusion Middlewareの管理』の「問題の診断」を参照してください。
サポートされているDMSメトリック
ナウン・タイプのDMSメトリックは、Oracle SOA Suite MBeanとして公開され、問題を診断する際に使用します。この項では、サポートされるDMSメトリックについて説明します。DMSナウンは、Oracle WebLogic Server管理コンソールで監視の作成に使用できます。
DMSメトリックは、BPELプロセス・サービス・エンジンの「統計」ページに表示されるグラフィカルな詳細を提供します。詳細は、「BPELプロセス・サービス・エンジンのリクエスト統計とスレッド・パフォーマンス統計の監視」および「BPELプロセス・サービス・エンジンでのリクエストの所要時間に関する統計の表示」を参照してください。
表15-21に、サポートされるサービス・エンジンのセンサーを示します。
表15-21 サービス・エンジンのセンサー
ナウン・パス | ナウンのタイプと説明 | センサー | タイプ |
---|---|---|---|
/soainfra/engines/ dispatcher/queuestats/ [REQUEST_TYPE] 様々なリクエスト・タイプには、監査、配信、ドメイン、インスタンス、起動、メンテナンス、非ブロック起動、プロセスおよびシステムがあります。 |
|
|
|
/soainfra/engines/ [bpel|workflow|mediator| decision]/message_ processing |
|
|
フェーズ・イベント フェーズ・イベント フェーズ・イベント フェーズ・イベント 状態 |
/soainfra/engines/bpel/ requests/[REQUEST_TYPE] リクエスト・タイプは、監査、エンジン、起動、非ブロック起動およびシステムです。 |
|
|
状態 状態 |
/soainfra/engines/workflo w/Task/service |
|
|
フェーズ イベント |
/soainfra/engines/workflo w/Task/[METHOD_NAME] |
|
フェーズ イベント |
|
/soainfra/engines/workflo w/TaskQuery/[METHOD_NAME] |
|
フェーズ イベント |
|
/soainfra/engines/workflo w/TaskMetadata/getTaskDef inition |
|
フェーズ イベント |
|
/soainfra/engines/workflo w/Verification/[METHOD_ NAME] 次のメソッドのみ: |
|
フェーズ イベント |
|
/soainfra/engines/workflo w/TaskNotification/notify ForTask |
|
フェーズ イベント |
|
/soainfra/engines/workflo w/AssignmentRules/execute Rules |
|
フェーズ イベント |
|
/soainfra/engines/bpel/di spatcher/ |
|
|
状態 状態 状態 |
表15-22に、サポートされるバインディング・センサーを示します。
表15-22 バインディング・センサー
ナウン・パス | ナウン・タイプ | センサー | タイプ |
---|---|---|---|
|
|
|
フェーズ フェーズ フェーズ |
表15-23に、サポートされるコンポジット・センサーを示します。
表15-23 コンポジット・センサー
ナウン・パス | ナウン・タイプ | センサー | タイプ |
---|---|---|---|
|
|
|
イベント フェーズ |
|
|
標準偏差(入手次第ユーザー・インタフェースにより計算される) |
イベント フェーズ フェーズ |
|
|
|
イベント |
|
|
|
イベント |
|
|
|
フェーズ |
表15-24に、サポートされる参照およびサービスのセンサーを示します。
表15-24 参照およびサービスのセンサー
ナウン・パス | ナウン・タイプ | センサー | タイプ |
---|---|---|---|
|
|
|
イベント イベント フェーズ |
|
|
|
イベント イベント イベント |
表15-25に、サポートされるOracle B2Bバインディング・センサーを示します。
表15-25 Oracle B2Bバインディング・センサー
ナウン・パス | ナウン・タイプ | センサー | タイプ |
---|---|---|---|
|
|
|
イベント イベント フェーズ・イベント 状態 |
|
|
|
イベント イベント フェーズ・イベント 状態 |
|
|
|
状態 状態 イベント |
|
|
|
イベント |
|
|
|
状態 状態 状態 |
|
|
|
イベント イベント フェーズ・イベント 状態 |
|
|
|
イベント イベント フェーズ・イベント 状態 |
表15-26に、サポートされるOracle User Messaging Serviceのセンサーを示します。
表15-26 Oracle User Messaging Serviceイベント・ブリッジのメトリック
ナウン・パス | ナウン・タイプ | センサー | タイプ |
---|---|---|---|
|
|
|
イベント イベント フェーズ・イベント イベント |
|
|
|
イベント イベント フェーズ・イベント 状態 |
|
|
|
状態 |
監視および通知の作成
監視を作成し、Oracle SOA Suite MBeanから収集したメトリックに基づく診断可能な条件で通知を送信できます。監視式がtrueに評価される(たとえば、ヒープ領域が指定容量を超える)と、通知が送信されます。
監視を作成する際は、次のようないくつかのオプションがあります。
-
デプロイメント、メモリーおよびWebサービス・コールの経過時間のために事前に構成されたルールと監視は、
sca_createWatches
WLSTコマンドによって有効にします。 -
Oracle WebLogic Server管理コンソールでOracle SOA Suiteの監視を手動で作成します。
表15-27に示すメッセージIDが診断用に割り当てられています。
-
Oracle WebLogic Server管理コンソールで監視を手動で作成する場合は、表15-27の命名規則に従う必要があります。Oracle SOA Suite関連の監視の接頭辞は、
SOA
-
message_ID
です。 -
事前に構成された監視を有効にすると、名前が自動的に作成されます。
表15-27 メッセージの接頭辞
シナリオ | メッセージID | 実行されるダンプ | 監視は事前構成済か |
---|---|---|---|
メモリー |
|
|
はい。「事前構成済ルールおよび監視の有効化」を参照してください |
デプロイメントのハング |
|
|
はい。「事前構成済ルールおよび監視の有効化」を参照してください |
データ・ソース |
|
|
いいえ。作成方法は、「Oracle SOA Suite監視および通知の手動作成」を参照してください |
Webサービス・コールの経過時間 |
|
|
はい。「事前構成済ルールおよび監視の有効化」を参照してください |
リシーケンサ・グループ保留中 |
|
|
いいえ。作成方法は、「Oracle SOA Suite監視および通知の手動作成」を参照してください |
WLDF通知を監視にリンクすることもできます。初期状態のOracle Fusion Middleware診断フレームワークの通知(名前はFMWDFW通知)をリンクすると、SOA固有の一連のダンプが実行されます。これらのダンプでは、状況および環境に関するランタイム情報が提供されます。実行するダンプのリストは、事前定義のXMLインシデント・ルール・ファイルによって決まります。
その他の通知(電子メールなど)を監視にリンクすることもできます。
事前構成済ルールおよび監視の有効化
次の事前構成済の診断フレームワーク・ルールは、Oracle SOA Suiteとともに自動的にインストールされます。
-
OWS-04086
エラーの発生時にインシデントを作成するためのログ検出条件ルール。 -
DMS実行コンテキスト(EC)でSOAコンポジット・アプリケーション名の存在をチェックして、
soa.wsdl
およびsoa.composite.trail
診断ダンプを実行されるダンプのリストに追加する条件ルール。
これらのルールの使用を有効化して次の監視を生成するには、ドメインの作成後にsca_createWatches
WLSTコマンドを実行する必要があります。
-
デプロイメント監視(しきい値は5分)
-
メモリー監視(空きヒープ率のしきい値25%)
-
Webサービス・コールの経過時間の監視(しきい値は5分)
事前構成済の監視を有効にするには:
Oracle SOA SuiteでのWLSTコマンドの使用法については、SOA Suite用WLSTコマンド・リファレンスを参照してください。
Webサービス・バインディング・コールの経過時間を識別する監視の作成
コンポジットから外部参照へのWebサービス・バインディング・コールが完了するまでの所要時間を追跡する監視を作成できます。指定の時間しきい値を超えると、インシデントを作成したり、アラートをトリガーしたりできます。この監視は、次のシナリオで役立ちます。
-
呼び出された外部参照の動作が遅すぎるために、この参照による処理を待機する間にメッセージが収集される結果となっているシナリオを識別する場合
-
厳しいサービス・レベル合意(SLA)が配備されており、呼び出されたサービスによってSLA違反が発生している際は通知を受け取りたい場合
Webサービス・バインディング・コールの経過時間を識別する監視を作成するには:
「Oracle SOA Suite監視および通知の手動作成」で説明されているステップを使用し、次のガイドラインに従って監視を作成してください。
-
「SOAインフラストラクチャの共通プロパティ」ページで、「詳細SOAインフラ拡張構成プロパティ」セクションの「CreateWSCallTrackingMBean」プロパティを
true
に設定します。このプロパティは、Webサービス・バインディング・コールの経過時間を追跡するためのMBeanの作成を制御して、SOAインフラストラクチャのすべてのSOAコンポジット・アプリケーションにグローバルに適用します。外部参照に対する各Webサービス・バインディング・コールについて、時間を追跡するための新しいMBeanが登録され、その後登録解除されます。このプロパティはデフォルトでfalse
に設定されています。システムに問題が発生するまでは、このプロパティはtrue
に設定しないでください。「SOAインフラストラクチャの共通プロパティ」ページへのアクセスの詳細は、「SOAインフラストラクチャ・プロパティの構成」を参照してください。
-
監視名として
SOA-900003#soa-infra#WSExtElapsedTimeWatch
を指定します。 -
「監視のタイプ」リストから「収集対象メトリック」を選択します。
-
「カスタムMBeanのタイプ」フィールドに
CreateWSCallTrackingMBean
を指定します。このMBeanは「MBeanタイプ」フィールドからは選択できません。 -
SOAコンポジット・アプリケーションから外部参照へのWebサービス・バインディング・コールが完了するまでの経過時間(ミリ秒単位)を追跡するためのルール式を指定します(分単位)。たとえば、この式は、監視がトリガーされたときにインシデントを作成します。
(${ServerRuntime//[oracle.fabric.management.wldf.mbean.WSExternalBindingWatchMXBeanImpl]//ElapsedTime} > 2
-
監視がトリガーされたとき、Oracle SOA Suite ADRディレクトリにインシデントが作成されます。ディレクトリ内の
readme
ファイルには、インシデントに関する情報が表示されます。たとえば:WatchDomainName: soainfra Watch Data: ServerRuntime//[oracle.fabric.management.wldf.mbean.WSExternalBindingWatch MXBeanImpl]//ElapsedTime : oracle.soa.config:Application=soa-infra.j2eeType= CompositeReferenceWatch.name=bpel#20004/soainfra/AdminServer/soainfra/default/ ExceptionHandler/1.0/soa.2075e8a1-5c69-4e5o-a679-c0ba2f6ae6/REFERENCEs/ CommsUtilityS/PORTs/CommsUtilityPort//ElapsedTime:244013
また、
sca_createWatches
WLSTコマンドを使用して、この監視を自動的に作成することもできます。詳細は、「事前構成済ルールおよび監視の有効化」を参照してください。
処理遅延が指定の制限時間を超えているかどうかを識別する監視の作成
メッセージ待機時間や処理遅延の数が特定の制限を超えた場合にアラートを送信する監視を作成できます。
この監視は、システムMBeanブラウザの「CubeDispatcher」プロパティの「DispatcherStatsMap」属性で制御します。この設定には次のようにアクセスできます。
- 「soa-infra」を右クリックして、「管理」→「システムMBeanブラウザ」の順に選択します。
- 「アプリケーション定義のMBean」→「oracle.as.soainfra.bpm」→「サーバー: server_name」→「bpel」→「CubeDispatcher」の順に展開します。
- 「CubeDispatcher」をクリックします。
「Oracle SOA Suite監視および通知の手動作成」で説明されているステップに従い、次のガイドラインを使用して、監視作成ウィザードの「式の追加」セクションで監視を作成します。
-
「ServerRuntime」を選択して、「次へ」をクリックします。
-
「カスタムMBeanのタイプ」フィールドに
com.collaxa.cube.engine.dispatch.DispatcherMXBeanAdapter
を指定して、「次へ」をクリックします。このMBeanは「MBeanタイプ」フィールドからは選択できません。 -
「カスタム・インスタンス」フィールドに
oracle.as.soainfra.bpm:Application=soa-infra,name=CubeDispatcher,type=bpel
と指定して、「次へ」をクリックします。 -
「属性式」フィールドに
DispatcherStatsMap(invokeSet)(invoke)(scheduled)
と指定します。 -
このページの残りのフィールドに入力して、「次へ」をクリックします。
リシーケンサの監視および通知の作成
リシーケンサ・グループがメッセージを処理する際の所要時間を追跡する監視を作成できます。指定した時間しきい値を超えた場合は、通知を生成できます。
リシーケンサの監視および通知を作成するには:
「Oracle SOA Suite監視および通知の手動作成」で説明されているステップを使用し、次のガイドラインに従ってください。
-
「Module-FMWDFW」モジュールで監視と通知を作成します。
-
「診断監視の作成」ページで、次のパターンに準拠する監視名を指定する必要があります。
MED-900000#soa-infra#some_other_text
たとえば、
MED-900000#soa-infra#PendingGroups
と指定します。 -
式を作成する際は、次のMBeanタイプを選択します。
oracle.tip.mediator.dfw.MediatorDiagnostic
式のインスタンスに選択できるオプションは1つのみです。
oracle.mediator:name=MediatorDiagnostic,type=MediatorDiagnostic
-
「メッセージ属性」フィールドに
ResequencerMaxUnprocessTime
を選択します。値には、通知をトリガーする前にグループを保留できる分数を入力します。 -
演算子として、大なり記号(>)を選択します。
完成した式は、次のようになります。
(${ServerRuntime//[oracle.tip.mediator.dwf.MediatorDiagnostic]oracle.mediator:name =MediatorDiagnostic,type=MediatorDiagnostic//resequencerMaxUnprocessTime} > '15')
サンプル・カスタム・ルール・ファイルを作成するには:
監視ルール式はダンプ・コンテキストでは提供されないため、ダンプ生成時に指定された条件は示されません。カスタム・ファイルcustom-rule.xml
を使用して、ダンプ生成ルールを登録できます。詳細は、「事前定義のインシデント処理ルール」を参照してください。
例15-1 リシーケンサ・ダンプのサンプル・カスタム・ルール・ファイル
<?xml version="1.0" encoding="UTF-8"?> <diagnosticRules xmlns="http://www.oracle.com/DFW/DiagnosticsFrameworkRules" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"> <processingRules> <rule name="memory diagnosis rule"> <ruleCondition> <condition name="MESSAGE_ID" value="MED-900000" operator="EQ"/> </ruleCondition> <ruleActions> <dumpAction name="mediator.resequencer"> <argument name="resequencerMaxUnprocessTime" value="10" valueType="literal"/> </dumpAction> </ruleActions> </rule> </processingRules> </diagnosticRules>
例15-1は、グループがメッセージの処理を10分間停止すると診断ダンプを生成するサンプル・カスタム・ルール・ファイルを示します。
手動によるダンプのトリガーと実行
インシデントが自動で作成されなかった場合は、WLSTコマンドexecuteDump
を使用して既存のダンプを手動で実行し、インシデントを作成できます。
ダンプを手動でトリガーして実行するには:
インシデントが自動で作成されなかった場合は、手動で作成することもできます。たとえば、パフォーマンスの問題に気付いたときに、Oracleサポート・サービスに送信するインシデントを作成する場合に便利です。インシデントには、SOAメッセージIDのマッピングに従ってSOAダンプを含めることができます。
これは、次のWLSTコマンドを使用して実行できます。
createIncident(messageId="SOA-90000", appName="soa-infra")
これにはWLDF監視の通知実行と同様の効果があり、この場合、監視のメッセージIDはSOA-90000
、アプリケーション名はsoa-infra
となります。
executeDump
の詳細は、『インフラストラクチャ・コンポーネントWLSTコマンド・リファレンス』の「診断フレームワークのカスタムWLSTコマンド」を参照してください。
ADRツールを使用したインシデント・パッケージの表示
ADRCIは、コマンド行ユーティリティです。このユーティリティを使用すると、問題を調査して、応急障害診断データをパッケージ化してOracleサポート・サービスにアップロードできます。また、ADRCIを使用すると、ADR内のダンプ・ファイルの名前を表示したり、XMLタグを削除したアラート・ログを表示したりできます。この表示には、コンテンツ・フィルタを適用することもできます。
ADRCIは次のディレクトリにインストールされています。
MW_HOME/wlserver_10.3/server/adr
ADRCIの詳細は、Oracle DatabaseユーティリティのADRCI: ADRコマンド・インタプリタに関する項を参照してください。
問題の診断および解決の詳細は、Oracle Database管理者ガイドを参照してください。
問題とインシデントの問合せ
診断フレームワークには、次のような問題およびインシデントに関する情報を表示する際に使用できるWLSTコマンドが用意されています。
-
複数のOracle WebLogic Serverに対する問題の問合せ
-
複数のOracle WebLogic Serverに対するインシデントの問合せ
-
特定のOracle WebLogic Serverのインシデントに関連付けられたダンプ・ファイルの表示
- 『Oracle Fusion Middlewareの管理』の診断フレームワークの理解
- 『インフラストラクチャ・コンポーネントWLSTコマンド・リファレンス』の「診断フレームワークのカスタムWLSTコマンド」