この章では、Service Busに関する問題の識別方法と、WebLogic診断フレームワーク(WLDF)およびOracle Fusion Middleware診断フレームワーク(DFW)を使用して適切な修正を行う方法について説明します。
この付録の内容は次のとおりです。
Service Busは、Oracle Fusion Middleware診断フレームワークとともにWebLogic診断フレームワーク(WLDF)を使用して、ユーザーによる問題の検出、診断および解決を支援します。
WLDFを使用すると、指定した条件について特定のログとメトリックを監視し、条件が満たされたときに通知を送信することで、診断シナリオをモニターできます。診断フレームワークを使用すると、Service Bus固有の診断シナリオを、表示と分析用にフォーマットされたデータ・ダンプに集約できます。
WebLogicとSOAスイートにはいずれも、ユーザーの診断を助ける事前定義された複数の診断ダンプが用意されています。また、Service Busでは次の診断ダンプがサポートされています。
派生リソースのキャッシュ
JMSリクエスト/レスポンス相関表
MQリクエスト/レスポンス相関表
診断フレームワーク、監視および通知の詳細は、Oracle Fusion Middlewareの管理の「問題の診断」を参照してください。SOA Suiteでの診断フレームワークの使用方法の詳細(生成するダンプ、監視と通知の設定および事前定義診断ダンプを含む)は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』の「SOAコンポジット・アプリケーションに関する問題の診断」を参照してください。
WLDFはOracle WebLogic Serverに付属のモニターおよび診断フレームワークで、WebLogic Serverのプロセス内で実行する一連のサービスの定義および実装を行い、標準的なサーバーのライフ・サイクルに参加します。WLDFを使用すると、実行中のサーバーで生成された診断データを取得して、特定の条件が満たされたときに監視と通知を設定できます。監視と通知を定義することで、問題を特定するための診断データの収集がはかどり、フォルトの発生時にフォルトの特定と診断が可能になります。
WLDFの詳細は、『Oracle WebLogic Server診断フレームワークの構成と使用』を参照してください。
監視を作成すると、その監視によりサーバーとアプリケーションの状態がモニターされ、ユーザーが定義した条件に基づいて通知が送信されます。監視と通知は、ドメイン内の1つ以上のサーバー・インスタンスを対象にした診断モジュールの一部として構成します。監視の作成時に、Oracle WebLogic Server管理コンソールで、Service BusとOracle WebLogic ServerのMBeanの属性を使用して、モニター用のルール式を作成します。たとえば、空きヒープ・メモリーの割合が25%を下回るときに通知するように監視を設定できます。Service BusのメッセージIDを使用して、監視および通知を構成できます。
監視および通知の作成の詳細は、Oracle Fusion Middlewareの管理の診断フレームワークの構成に関する項を参照してください。
診断フレームワークには、データ収集方法の定義に使用できるMBeanが用意されています。作成する監視ルール式では、データの収集とモニターの実行に、Service BusとOracle WebLogic ServerのMBeanの属性を使用します。シナリオの診断には、そのシナリオに関する統計の提供に利用可能なMBeanやメッセージのログ出力に利用可能なMBeanを使用します。次に示すMBeanの属性を利用できます。
Oracle WebLogic Server MBean
診断Service Bus MBean
MBeanとして公開されているDMSメトリック
Service Busには複数のMBeanが用意され、次のことを監視と通知でモニターできます。
構成フレームワーク
プロキシおよびビジネス・サービス
パイプラインおよび分割-結合
セッション
Oracle WebLogic Server MBeanの詳細は、Oracle WebLogic Server MBeanリファレンスを参照してください。
診断フレームワークは、クリティカル・エラー(コードの不具合、メタデータの破損、カスタム・データの破損、デッドロック状態のスレッド、矛盾した状態などが原因のエラー)を対象にすることで、問題の検出、診断および解決に役立ちます。診断フレームワークは、クリティカル・エラーを検出し、関連する診断情報のダンプを取り込みます。WLDFの監視と通知は、診断フレームワークがリスニングするイベントをトリガーし、適切なデータ・ダンプを生成します。
診断フレームワークによるイベント処理方法の詳細は、Oracle Fusion Middlewareの管理の診断フレームワークの動作に関する項を参照してください。
診断ダンプは、インシデントの作成時には自動的に、管理者の要求時には手動で、特定の診断情報を取り込んでダンプしまします。インシデント作成の一環として実行される場合、ダンプは一連のインシデント診断データに含まれます。診断ダンプの例として、JVMスレッドダンプ、JVMクラス・ヒストグラム・ダンプ、DMSメトリック・ダンプなどがあげられます。
診断フレームワークには、複数の事前定義済ダンプが用意されています。詳細は、『Oracle Fusion Middlewareの管理』の問題の調査、報告および解決に関する項を参照してください。診断フレームワークにより提供されるダンプに加え、Service Busには、Service Busに固有の診断のために用意されたダンプがあります。詳細は、「Oracle Service Bus診断ダンプの操作」を参照してください。
自動診断リポジトリ(ADR)は、トレースやダンプなどの診断データ用のファイル・ベースの階層型リポジトリです。Oracle Fusion Middlewareコンポーネントはすべてのインシデント・データをADRに保管し、各Oracle WebLogic ServerはADR内の各自のホーム・ディレクトリのサブディレクトリに診断データを保管します。ADRの詳細は、Oracle Fusion Middlewareの管理の自動診断リポジトリに関する項を参照してください。
Oracle WebLogic Serverの管理者用コンソールで監視を作成するときには、通知も定義します。Oracle Fusion Middlewareでは、FMWDFW通知というデフォルトの通知が定義されています。ユーザー独自の通知を作成できる一方で、FMWDFW通知を選択すると、Service Busのダンプが作成されます(「Oracle Service Bus診断ダンプの操作」を参照)。
カスタム通知の作成の詳細は、Oracle Fusion Middlewareの管理のカスタム診断ルールの構成に関する項を参照してください。
Dynamic Monitoring Service (DMS)を使用すると、Oracle Fusion Middlewareのコンポーネントは、Fusion Middleware Controlなどの管理ツールに、コンポーネントのパフォーマンス、状態および進行中の動作に関するデータを提供できるようになります。DMSは、メトリック、トレース・イベントおよびシステム・パフォーマンスを測定して報告し、これらのコンポーネントにコンテキスト相関サービスを提供します。
ナウン・タイプのDynamic Monitoring Service (DMS)メトリックは、問題の診断に使用するService BusのMBeanとして公開されます。DMSナウンは、Oracle WebLogic Server管理コンソールで監視の作成に使用できます。Service Busは、DMSを使用してService Busプロキシ・サービスのレスポンス時間を取得します。
Service Busでは、親ナウンがサービス・パスのフェーズ・イベント・センサーresponse
を定義します。表18-1に、サポートされるService Bus DMSナウンを示します。これには、ナウン階層を説明するために親ナウンも示しています。
表18-1 Service Busセンサー
ナウン・パス | ナウン | センサー | 種類 | 親ナウン |
---|---|---|---|---|
|
コンテキスト |
なし |
|
なし |
PROXYまたはBIZ |
サービス・タイプ |
なし |
|
Context |
フォルダ名とサービス名を含むサービスへのフルパス(スラッシュまたはバックスラッシュはハイフンに置き換える)。 |
サービス・パス |
|
|
サービス・タイプ |
次のService Bus環境の場合のコンテキスト名およびサービス・パス名の例を示します。
環境
ドメイン名: servicebus
サーバー名: osb_server1
Service Busプロジェクト名: TravelPoints
プロキシ・サービスのフォルダ名(TravelPointsプロジェクト): TravelProxyServices
プロキシ・サービス名: CalculatePoints
例
コンテキスト: /servicebus/osb_server1/TravelPoints
サービス・パス: TravelProxyServices-CalculatePoints
DMSでは、'/'で区切ったパスを使用して各Nounを参照できます。パスのデリミタ(/)は、親ナウンの識別に使用します。たとえば、前述の例のサービス・パス・ナウンは、次から直接参照できます。
/servicebus/osb_server1/TravelPoints/PROXY/TravelProxyServices-CalculatePoints
レスポンス・センサーは次の情報を取得します。
メトリック | 説明 |
---|---|
time |
アクティブ化全体の合計レスポンス時間 |
completed |
完了したアクティブ化の数 |
minTime |
最短で完了したアクティブ化 |
maxTime |
最長で完了したアクティブ化 |
avg |
アクティブ化完了までの平均時間 |
active |
現在まだ完了していないアクティブ化の数 |
maxActive |
同時に開くアクティブ化の最大数 |
DMSの詳細は、『パフォーマンスのチューニング・ガイド』のOracle Dynamic Monitoring Serviceの使用に関する項を参照してください。
Oracle WebLogic ServerおよびOracle SOAスイートで使用できる診断ダンプに加え、Service Busではこれらの場所での診断ダンプの作成がサポートされています。
表18-2は場所を示しています。
表18-2 Service Bus診断ダンプ
ダンプ | 説明 |
---|---|
|
サーバー上でのすべてのService Bus派生リソースのキャッシュに関する統計のコレクション |
|
Service Bus JMSリクエスト/レスポンス相関表 |
|
Service Bus MQリクエスト/レスポンス相関表 |
ここでは、診断ダンプの操作にWebLogic Scripting Toolコマンドを使用する方法について説明します。これらのコマンドの詳細は、『WebLogic Server WLSTコマンド・リファレンス』の診断コマンドに関する項を参照してください。診断フレームワークのダンプの詳細は、Oracle Fusion Middlewareの管理の問題の診断に関する項を参照してください。
使用可能な診断ダンプをリスト表示するには:
次の表に、Service Bus派生リソースのキャッシュ診断ダンプについての説明を示します。取得される情報には、各キャッシュ・タイプの名前、各キャッシュの統計情報およびキャッシュされた各エントリの情報などがあります。
表18-3 JMS相関表診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
なし |
Service Bus実行時に管理される各派生リソースのキャッシュについて、次の情報が提供されます。
各キャッシュ・エントリについて次の情報が提供されます。
|
次の表に、診断情報に含まれる各Service Busキャッシュを示します。
表18-4 Oracle Service Bus派生リソースのキャッシュ
キャッシュ | 説明 |
---|---|
アーカイブClassLoader |
依存性対応アーカイブ・クラス・ローダー。 |
アーカイブ・サマリー |
アーカイブのサマリー。 |
CodecFactory |
Codecファクトリ。 |
EffectiveWSDL |
ビジネス・サービスまたはプロキシ・サービスのサービス・リソースあるいはWSDLリソースから派生した、有効なWSDLオブジェクト。 |
Flow_Info |
メッセージ・フローの情報オブジェクト。 |
LightweightEffectiveWSDL |
ビジネス・サービスまたはプロキシ・サービスのサービス・リソースあるいはWSDLリソースから派生した、有効なWSDLオブジェクト。 |
MflExecutor |
MFLエグゼキュータ。 |
RouterRuntime |
プロキシ・サービスのコンパイル済ルーター・ランタイム。 |
RuntimeEffectiveWSDL |
ビジネス・サービスまたはプロキシ・サービスのサービス・リソースあるいはWSDLリソースから派生した、セッションの有効なWSDLオブジェクト。 |
RuntimeEffectiveWSPolicy |
ビジネス・サービスまたはプロキシ・サービスのWSポリシー |
SchemaTypeSystem |
MFL、XSおよびWSDLドキュメントの型のシステム情報 |
ServiceAlertsStatisticInfo |
ビジネス・サービスまたはプロキシ・サービスのサービス・アラート統計 |
ServiceInfo |
ビジネス・サービスまたはプロキシ・サービス、あるいはWSDLドキュメントのコンパイル済サービス情報 |
Wsdl_Info |
WSDL情報オブジェクト。 |
WsPolicyMetadata |
コンパイル済WSポリシーのメタデータ。 |
XMLSchema_Info |
XMLスキーマ・オブジェクトのXMLスキーマ情報 |
XqueryExecutors |
XQueryエグゼキュータ。 |
XsltExecutor |
XSLTエグゼキュータ。 |
alsb.transports.ejb. bindingtype |
EJBビジネス・サービスのEJBバインディング情報 |
alsb.transports.jejb.business. bindingtype |
JEJBビジネス・サービスのJEJBバインディング情報 |
alsb.transports.jejb.proxy. bindingtype |
JEJBプロキシ・サービスのJEJBバインディング情報 |
派生リソースのキャッシュの説明を表示するには:
次のWLSTコマンドを実行します。
describeDump(name='OSB.derived-caches',appName='OSB')
ダンプの名前、説明および引数がコンソールに表示されます。
派生リソースのキャッシュ・ダンプを実行するには:
次のWLSTコマンドを実行します。
executeDump(name='OSB.derived-caches', appName='OSB')
「派生リソースのキャッシュ・ダンプの出力例」に、派生リソースのキャッシュ・ダンプの出力例を示します。
「派生リソースのキャッシュ・ダンプの実行」の説明に従って、派生リソースのキャッシュ・ダンプを実行すると、次の例のような情報が表示されます。このダンプの一部は、読みやすくするために切り捨てられています。
<derivedCaches xmlns="http://www.bea.com/wli/config/xmltypes"> <derivedCache cacheType="RuntimeEffectiveWSDL"> <configuredEntries>2147483647</configuredEntries> <cacheEntriesInUse>0</cacheEntriesInUse> <totalHits>0</totalHits> <totalMisses>0</totalMisses> <hitRatio>0.0</hitRatio> <cacheEntries/> </derivedCache> ... <derivedCache cacheType="ServiceAlertsStatisticInfo"> <configuredEntries>2147483647</configuredEntries> <cacheEntriesInUse>9</cacheEntriesInUse> <totalHits>0</totalHits> <totalMisses>51</totalMisses> <hitRatio>0.0</hitRatio> <cacheEntries> <cacheEntry> <ref>services/bs_dq_uri4.BusinessService</ref> <creationTime>2012-03-22T23:44:53.737-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> <cacheEntry> <ref>services/bs_dq_nopooling.BusinessService</ref> <creationTime>2012-03-22T23:44:53.736-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> <cacheEntry> <ref>services/bs_dq_uri1.BusinessService</ref> <creationTime>2012-03-22T23:44:53.738-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> <cacheEntry> <ref>services/proxy_dq_uri.ProxyService</ref> <creationTime>2012-03-22T23:44:53.736-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> <cacheEntry> <ref>services/bs_dq_conn_pooling.BusinessService</ref> <creationTime>2012-03-22T23:44:53.736-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> <cacheEntry> <ref>services/bs_dq_conn_nopooling.BusinessService</ref> <creationTime>2012-03-22T23:44:53.737-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> <cacheEntry> <ref>services/bs_dq_uri2.BusinessService</ref> <creationTime>2012-03-22T23:44:53.737-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> <cacheEntry> <ref>services/bs_dq_pooling.BusinessService</ref> <creationTime>2012-03-22T23:44:53.736-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> <cacheEntry> <ref>services/bs_dq_uri3.BusinessService</ref> <creationTime>2012-03-22T23:44:53.737-07:00</creationTime> <computeTimeMSecs>0</computeTimeMSecs> </cacheEntry> </cacheEntries> </derivedCache> ... </derivedCaches>
表18-5は、Service Bus JMSリクエスト/レスポンス相関表診断ダンプの詳細を示しています。取得される情報には、各メッセージの相関ID、有効期限および宛先などがあります。
表18-5 JMS相関表診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
なし |
Service Busのバージョンに加え、各サービスの参照では保留中の各メッセージについて次の情報が表示されます。
|
JMS相関表ダンプの説明を表示するには:
次のWLSTコマンドを実行します。
describeDump(name='OSB.jms-async-table',appName='OSB')
ダンプの名前、説明および引数がコンソールに表示されます。
JMS相関表ダンプを実行するには:
次のWLSTコマンドを実行します。
executeDump(name='OSB.jms-async-table', appName='OSB')
「JMS相関表ダンプの出力例」に、JMS相関表ダンプの出力例を示します。
次の例は、JMS相関表ダンプの出力例です。
<transportDiagnosticsContents xmlns="http://www.bea.com/wli/sb/transportdiags"> <version>11.1.1.7</version> <transportDiagnostics transportType="jms"> <correlationTable> <services> <service> <ref>default/testJmsResponseRollback_out</ref> <message> <correlationMsgId responsePattern="JMSCorrelationID"> ID:42454153155cc06b7f5ab312000001363d5bd59effff8d4 </correlationMsgId> <expirationTime>2012-03-22T19:53:43.621-07:00</expirationTime> <msgDestination>testJmsResponseRollback_outRequest</msgDestination> </message> </service> </services> </correlationTable> </transportDiagnostics> </transportDiagnosticsContents>
表18-6は、Service Bus MQリクエスト/レスポンス相関表診断ダンプの詳細を示しています。取得される情報には、各メッセージの相関ID、有効期限および宛先などがあります。
表18-6 MQ相関表診断ダンプ
ダンプ名 | ダンプ・パラメータ/ダンプ・モード | 取得される情報 |
---|---|---|
|
なし |
Service Busのバージョンに加え、各サービスの参照では保留中の各メッセージについて次の情報が表示されます。
|
MQ相関表ダンプの説明を表示するには:
次のWLSTコマンドを実行します。
describeDump(name='OSB.mq-async-table',appName='OSB')
ダンプの名前、説明および引数がコンソールに表示されます。
MQ相関表ダンプを実行するには:
次のWLSTコマンドを実行します。
executeDump(name='OSB.mq-async-table', appName='OSB')
「MQ相関表ダンプの出力例」に、MQ相関表ダンプの出力例を示します。
次の例は、MQ相関表ダンプの出力例です。
例 - MQ相関表ダンプの出力例
<transportDiagnosticsContents xmlns="http://www.bea.com/wli/sb/transportdiags"> <version>11.1.1.7</version> <transportDiagnostics transportType="mq"> <correlationTable> <services> <service> <ref>services/mq_Biz_cached</ref> <message> <correlationMsgId responsePattern="MQCorrelationID"> 000000000000000000000000000000000000000000000000 </correlationMsgId> <expirationTime>2012-03-22T23:48:09.085-07:00</expirationTime> <msgDestination>rc_req</msgDestination> </message> </service> </services> </correlationTable> </transportDiagnostics> </transportDiagnosticsContents>
WSLTを使用したService Bus診断ダンプの生成に加え、Oracle Remote Diagnostic Agent (RDA)も使用できます。次の手順を実行する前に、RDAがシステムにインストールされていることを確認してください。
Service BusのRDAの使用についての詳細説明および詳細手順は、OracleサポートでSOA製品でのリモート診断エージェント(RDA)の実行方法に関するナレッジ・ベースの記事を参照してください。このドキュメントのIDは1571554.2です。このドキュメントでは、最小限のプロンプトでRDAを実行するための追加コマンドについて説明しています。追加情報および手順は、Fusion Middlewareホーム・ディレクトリのoracle_common
ディレクトリにあるREADMEファイルにも示されています。
RDAを使用して診断ダンプを生成するには、次の手順を実行します。
ADRCIは、コマンド行ユーティリティです。このユーティリティを使用すると、問題を調査して、応急障害診断データをパッケージ化してOracleサポート・サービスにアップロードできます。また、ADRCIを使用すると、ADR内のダンプ・ファイルの名前を表示したり、XMLタグを削除したアラート・ログを表示したりできます。この表示には、コンテンツ・フィルタを適用することもできます。
ADRCIの詳細は、Oracle DatabaseユーティリティのADRCI: ADRコマンド・インタプリタに関する項を参照してください。その他のツールの詳細は、Oracle Database管理者ガイドの診断データの管理に関する項を参照してください。
診断フレームワークには、問題とインシデントに関する情報を表示できるWLSTコマンドが用意されています。
次のものが必要となります。
複数のOracle WebLogic Serverに対する問題の問合せ
複数のOracle WebLogic Serverに対するインシデントの問合せ
特定のOracle WebLogic Serverのインシデントに関連付けられたダンプ・ファイルの表示
これらのWLSTコマンドの詳細は、Oracle Fusion Middlewareの管理の診断フレームワークの理解に関する項および『WebLogic Server WLSTコマンド・リファレンス』の診断コマンドに関する項を参照してください。