![]() ![]() ![]() ![]() |
Oracle Service Bus は、メッセージ データとアラートを 1 つまたは複数のレポート プロバイダに配信します。メッセージ データは、メッセージの本文およびメッセージに関連付けられた他の変数 (header 変数や inbound 変数など) から取り込むことができます。アラート データには、プロキシ サービスをモニタするためにコンフィグレーションできるサービス レベル アグリーメント (SLA) 違反に関する情報が含まれます。レポート プロバイダに配信されるメッセージまたはアラート データは、メッセージのトラッキングや規定の監査などの機能に使用できます。
Oracle Service Bus には、メッセージ レポート用の JMS レポート プロバイダが含まれます。Oracle Service Bus Console の [レポート] モジュールには、このレポート プロバイダから取り込まれた情報が表示されます。Oracle Service Bus のインストールで提供される JMS レポート プロバイダを使用しない場合は、そのレポート プロバイダを割り当て解除し、レポート サービス プロバイダ インタフェース (SPI) を使用して独自のレポート プロバイダを作成できます。メッセージ用の独自のレポート プロバイダをコンフィグレーションした場合、Oracle Service Bus Console に情報は表示されません。したがって、独自のユーザ インタフェースを作成する必要があります。SLA データを取り込むには、アラート用のレポート プロバイダを作成する必要があります。
Oracle Service Bus には、メッセージまたはアラート用に 1 つまたは複数のレポート プロバイダを作成できる拡張可能なフレームワークが用意されています。
メッセージ レポートを有効にするには、最初にプロキシ サービスのメッセージ フローにレポート アクションを作成する必要があります。レポート アクションを使用すると、各メッセージから情報を抽出して、それを Oracle Service Bus レポート データ ストリームに書き込むことができます。アラート レポートのレポート アクションをコンフィグレーションする必要はありません。アラート データは常にレポート データ ストリームで使用可能です。詳細については、「メッセージ レポートを有効にする方法」を参照してください。
独自のレポート プロバイダの作成に必要な情報は、Oracle Service Bus の Javadoc の com.bea.wli.reporting
にあります。Javadoc には、レポート プロバイダをパッケージ化する方法、配置場所、デプロイの方法、デプロイメント順序など、レポート プロバイダの実装に必要なものに関する情報が記載されています。レポート スキーマ (MessageReporting.xsd) の場所は、ALSB_HOME/lib/sb-schemas.jar です。
図 5-1 は、レポート フレームワークを示しています。
図 5-1 に示すように、レポート メッセージとアラートの両方がレポート データ ストリームにエクスポートされます。レポート ステージでは、レポート アクションによって情報が各メッセージから抽出され、MessageReporting.xsd に準拠するメタデータとともにレポート データ ストリームに書き込まれます。
同様に、SLA マネージャは、レポート データ マネージャ API を使用して、AlertReporting.xsd に準拠するメタデータとともにアラート レポート ストリームに書き込みます。アラートのレポート プロバイダまたは独自のメッセージ レポート プロバイダを開発するには、ReportingDataHandler インタフェースを実装し、ReportingDataManager クラスを使用する必要があります。
ReportingDataHandler インタフェースは、レポートまたはアラート データ ストリームを取得し、処理します。このストリームは、リレーショナル データベース、ファイル、JMS キューなどで処理したり格納したりできます。使用するストリームに応じて、データ ストリームを処理する適切な handle メソッドを実装する必要があります。
handle(com.bea.xml.XmlObject metadata, String s)
handle(com.bea.xml.XmlObject metadata, com.bea.xml.XmlObject data)
handle
メソッドを使用して、アラート レポート ストリームに書き込む。 handle(com.bea.xml.XmlObject metadata, String data)
ReportingDataManager は、レポート プロバイダのレジストリを保持するローカル サーバ オブジェクトです。レポート プロバイダは、ReportingDataHandler インタフェースを実装します。ReportingDataManager には、以下の機能を実行するための操作が用意されています。
JMS レポート プロバイダは、プロキシ サービスのメッセージ フローでのレポート アクションを使用して各メッセージからレポート情報を取り込むプラグイン可能なアーキテクチャを備えています。デフォルトの JMS レポート プロバイダは、Oracle Service Bus ドメインの作成時に自動的にコンフィグレーションされます。クラスタ内のすべてのメッセージは集約され、データベース固有の形式で JMS レポート プロバイダ データ ストアに格納されます。このプロバイダは、JMS レポート プロバイダ データ ストアの情報を表示します。
注意 : | このレポート プロバイダを使用しない場合は、割り当て解除する必要があります。詳細については、「JMS レポート プロバイダを割り当て解除する方法」を参照してください。 |
JMS レポート プロバイダは、プロデューサとコンシューマで構成されています。これらはスケーラビリティを向上させるために切り離されています。図 5-2 に示すように、プロデューサは JMS プロデューサであり、MDB (メッセージ駆動型 Bean) が JMS コンシューマとして機能します。
レポート ステージには、レポート情報を収集し、ReportingDataManager の各種の handle 操作を通じてレポート ストリームを JMS レポート プロバイダにディスパッチするレポート アクションが含まれています。JMSReportingDataHandler は、レポート プロバイダの JMS プロデューサです。JMSReportingDataHandler はレポート ストリームを取得し、情報を JMS キューに記録します。MDB は、JMS レポート キューをリスンします。メッセージは非同期に処理され、データは JMS レポート プロバイダ データ ストアに格納されます。
JMS レポート プロバイダはレポート アクションによって生成されたレポートを処理しますが、SLA やパイプライン アラートのため生成されたレポートは無視されます。カスタム レポート プロバイダに書き込むとき、その動作に制限されません。ビジネス要件に応じて、レポート フレームワークによってカスタム レポート プロバイダに配信されたレポート データのすべてまたはサブセットを処理することができます。
Oracle Service Bus のインストールで提供される JMS レポート プロバイダ、またはユーザ独自のレポート プロバイダからレポート メッセージを受信するには、まずプロキシ サービスのメッセージ フローにレポート アクションを作成する必要があります。レポート アクションを使用すると、各メッセージから情報を抽出して、それを Oracle Service Bus レポート データ ストリームに書き込むことができます。レポート アクションには、メッセージから抽出し、Oracle Service Bus のレポート データ ストリームに追加する情報を指定する必要があります。
レポート アクションをコンフィグレーションする場合は、キー値を使用してメッセージからキー識別子を抽出します。複数のキーをコンフィグレーションできます。情報は、メッセージの本文からのみでなく、header 変数や inbound 変数など、メッセージに関連付けられている他のあらゆる変数からも取り込むことができます。メッセージ変数の詳細については、『Oracle Service Bus ユーザーズ ガイド』の「メッセージ コンテキスト」を参照してください。
<?xml version="1.0" encoding="utf-8"?>
<poIncoming>
<areacode>408</areacode>
<item-quantity>100</item-quantity>
<item-code>ABC</item-code>
<item-description>Medicine</item-description>
</poIncoming>
たとえばキーを itemcode、値を .//item-code
(XPath 式)、変数をメッセージ本文 (body) と、図 5-3 に示すように指定できます。
デフォルトの JMS レポート プロバイダを使用している場合は、キーおよび関連付けられている値が [メッセージの概要] テーブルの [レポート インデックス] カラムに表示されます。複数のキーをコンフィグレーションした場合は、図 5-4 に示すように、キーと値の各ペアがカンマで区切られて [レポート インデックス] カラムに表示されます。
レポート アクションの作成または [メッセージの概要] ページの表示方法については、『Oracle Service Bus Console の使い方』の次のトピックを参照してください。
Oracle Service Bus ドメインでサーバの実行中にレポート プロバイダを停止する場合は、以下の手順に従います。
デフォルトの JMS レポート プロバイダまたは任意のレポート プロバイダを使用しない場合は、割り当て解除する必要があります。
注意 : | レポート プロバイダがなくても、レポート アクションを定義できます。ただし、データの書き込みは行われません。 |
Oracle Service Bus ドメインでサーバの実行中にレポート プロバイダを割り当て解除するには、以下の手順に従います。
注意 : | この手順は、レポート プロバイダで独自のデータ ソースを使用している場合のみ必須です。Oracle Service Bus のインストールでデフォルトの JMS レポート プロバイダを割り当て解除するには、以下の手順を実行する必要があります。 |
サーバが Oracle Service Bus ドメインで実行されていない場合は、WebLogic Scripting Tool (WLST) を使用して、Oracle Service Bus ドメインから JMS レポート プロバイダを削除できます。WLST の詳細については、WebLogic Server ドキュメントの『WebLogic Scripting Tool ガイド』を参照してください。
レポート プロバイダを割り当て解除するには、以下の手順を実行します。
C:>java com.bea.plateng.domain.script.jython.WLST_offline
wls:/offline>readDomain("C:/bea/user_projects/domains/base_domain")
wls:/offline/base_domain
>unassign("JdbcSystemResource", "wlsbjmsrpDataSource", "Target", "AdminServer")
wls:/offline/base_domain>unassign("AppDeployment", "JMS Reporting Provider", "Target", "AdminServer")
wls:/offline/base_domain>updateDomain()
wls:/offline/base_domain>closeDomain()
Oracle Service Bus の JMS レポート プロバイダを割り当て解除すると、図 5-7 に示すように、Oracle Service Bus Console の [レポート] モジュールにレポート プロバイダがデプロイされていないことが示されます。
注意 : | クラスタでは、JMS レポート プロバイダはクラスタに割り当てられます。したがって、クラスタでメッセージを表示およびパージするには、少なくとも 1 つの管理対象サーバを管理サーバとともに実行するようコンフィグレーションする必要があります。管理対象サーバが実行されていない場合は、図 5-7 に示したメッセージが Oracle Service Bus Console に表示されます。 |
Oracle Service Bus Console の [レポート] モジュールには、JMS レポート プロバイダ データ ストアによって収集された情報が表示されます。[レポート] モジュールの最初のページには、抽出された情報と、メッセージがデータベースに書き込まれた時刻やメッセージに関連付けられているサービスなどのその他の情報を含む [メッセージの概要] テーブルが表示されます。データをフィルタおよびソートすることで、このページに表示される情報をカスタマイズできます。また、エラー情報など、特定のメッセージに関する詳細情報を表示することもできます。
[レポート] モジュールには、メッセージ データの管理に役立つパージ機能が用意されています。レポート データストアからすべてのメッセージをパージしたり、時間範囲に基づいてパージしたりできます。
JMS レポート プロバイダ データ ストアにはデータベースが必要です。WebLogic Server とともに、PointBase データベースの評価版がインストールされます。PointBase は開発環境には使用できますが、プロダクション環境には使用できません。Oracle Service Bus では、他のベンダのデータベースもサポートされています。JMS レポート プロバイダ データ ストアのホストに使用しているデータベースに対して、標準的なデータベース管理手続きを行ってください。詳細については、「JMS レポート プロバイダ ストア用データベースのコンフィグレーション方法」を参照してください。
[レポート] モジュールの詳細については、『Oracle Service Bus Console の使い方』の「レポート」を参照してください。
[操作] ナビゲーション バーの [レポート] モジュールにある [メッセージ レポート] をクリックすると、[メッセージの概要] ページが表示されます。このページには、データベース タイムスタンプでソートされたレポート メッセージのリストを示すテーブルがあります。
メッセージがフィルタされていない場合、[メッセージの概要] テーブルには、データベース タイムスタンプに基づいて最大 100 個の最新メッセージが表示されます。メッセージをフィルタした場合は、最大 1000 個のメッセージが表示されます。
注意 : | フィルタは自動的にリセットされません。フィルタは更新またはリセットするまで有効です。 |
表 5-1 は、[メッセージ レポートの概要] に表示される情報を示します。
特定のメッセージを検索するには、[メッセージの概要] テーブルで [フィルタ] をクリックすることにより、メッセージの表示をフィルタします。利用可能なフィルタを図 5-9 に示します。
図 5-9 に示すように、指定した期間のレポート メッセージをサービス名、エラー コード、およびレポート インデックスでフィルタできます。メッセージをフィルタした後、ページのタイトルは [フィルタされたメッセージの概要] に変わります。[メッセージの概要] のフィルタの使用については、『Oracle Service Bus Console の使い方』の「レポート」にある「メッセージの表示と検索」を参照してください。
レポート メッセージに関する詳細情報を表示するには、[レポート インデックス] カラムでメッセージの名前をクリックします。メッセージの詳細表示ページが表示されます。
[メッセージの詳細を表示] ページには、図 5-10 に示すように、レポート メッセージに関する詳細情報が表示されます。
表 5-2 は、レポート メッセージの詳細ページに表示される情報を示します。
レポート データストアからすべてのメッセージをパージしたり、時間範囲に基づいてパージすることができます。メッセージのパージは、Oracle Service Bus Console で行われる非同期プロセスです。この機能により、パージをバックグラウンドで行いながら、Oracle Service Bus Console の [メッセージの概要] ページを使用できます。
パージの完了に要する時間は、パージ キューにあるメッセージの数によって異なります。パージ プロセス中にレポート メッセージを検索すると、メッセージの削除の速度が低下します。また、一部のデータのパージがまだ完了していない場合、[メッセージの概要] ページに不正なデータが表示されることがあります。
パージ プロセスは非同期であり、バックグラウンドで行われるため、Oracle Service Bus Console には、パージを実行中であることを示すメッセージは表示されません。ただし、パージの実行中に別のユーザがパージを開始しようとすると、次のメッセージが表示されます。
「すでにパージ作業を実行中です。後で実行してください
」
Oracle Service Bus では、JMS レポート プロバイダ データ ストア用のデータベースが必要です。WebLogic Server とともにインストールされる PointBase データベースは評価を目的としており、プロダクション環境用ではありません。
プロダクション環境では、サポートされているデータベースの 1 つを使用する必要があります。サポートされているデータベースに関する最新情報については、Oracle Service Bus でサポート対象のコンフィグレーションにあるサポート対象のデータベースとドライバを参照してください。
Oracle Service Bus ドメインを作成する場合、Configuration Wizard ではデータベース テーブルが自動的に作成されません。開発環境では、デフォルトの JMS レポート プロバイダは、指定されたデータベースのテーブルが存在するかどうかを実行時にチェックします。テーブルが存在しない場合、レポート プロバイダによってテーブルが作成されます。テーブルが存在する場合は、そのテーブルが使用されます。
注意 : | PointBase を使用する場合は、Configuration Wizard でデータベースを指定する必要はありません。 |
JMS レポート プロバイダで使用するデータベースは、次のいずれかの方法で指定できます。
<BEA_HOME>
/osb_10.3/dbscripts>ls
です。
ここで、BEA_HOME は WebLogic 製品のインストール先の場所を表します。
プロダクション用のデータベースのコンフィグレーションの詳細については、Oracle Service Bus のデプロイメント ガイドの以下の章を参照してください。
![]() ![]() ![]() |