![]() ![]() ![]() ![]() |
BEA AquaLogic Service Bus は、メッセージ データとアラートを 1 つまたは複数のレポート プロバイダに配信します。メッセージ データは、メッセージの本文およびメッセージに関連付けられた他の変数 (header 変数や inbound 変数など) から取り込むことができます。アラート データには、プロキシ サービスをモニタするためにコンフィグレーションできるサービス レベル アグリーメント (SLA) 違反に関する情報が含まれます。レポート プロバイダに配信されるメッセージまたはアラート データは、メッセージのトラッキングや規定の監査などの機能に使用できます。
AquaLogic Service Bus には、メッセージ レポート用の JMS レポート プロバイダが含まれます。AquaLogic Service Bus Console の [レポート] モジュールには、このレポート プロバイダから取り込まれた情報が表示されます。AquaLogic Service Bus のインストールで提供される JMS レポート プロバイダを使用しない場合は、そのレポート プロバイダを割り当て解除し、レポート サービス プロバイダ インタフェース (SPI) を使用して独自のレポート プロバイダを作成できます。メッセージ用の独自のレポート プロバイダをコンフィグレーションした場合、AquaLogic Service Bus Console に情報は表示されないので、独自のユーザ インタフェースを作成する必要があります。SLA データを取り込む場合は、アラート用のレポート プロバイダを作成する必要があります。
以下のシナリオでは、AquaLogic Service Bus を使用してメッセージをトラッキングする方法を説明します。
AquaLogic Service Bus Console では、メッセージをフィルタして取引後処理プロキシ サービスを表示します。一部のメッセージを詳細表示すると、パイプライン エラーの原因がメッセージ トランスフォーメーション エラーであり、その変形されたメッセージはプロキシ サービスに関連付けられているポータルから送信されていることがわかります。この問題を解決するには、そのポータル サイトから発生するすべてのメッセージのパイプラインに新しいトランスフォーメーションを追加します。
顧客サービス部門から運用部門に、取引 1234 を送信した顧客が取引確認を受信しなかったという苦情について連絡が来ます。AquaLogic Service Bus Console にログインし、取引番号を検索します。要求パイプラインで 2 つのメッセージが処理されているが、応答メッセージがなかったことがわかります。顧客に連絡して取引が正常に処理されたことを保証するよう顧客サービス部門に依頼します。
月末に、融資処理チームは、処理した融資に関する情報をコンプライアンス部門に提供する必要があります。この要件を満たすために、アプリケーション開発チームは、関連メッセージ情報を取り込むよう該当するプロキシ サービス パイプラインを更新します。具体的には、顧客 ID と名前、融資 ID、融資額、不動産の住所、および融資の申し込み日に関するデータがメッセージから抽出されます。
アラート用のレポート プロバイダをコンフィグレーションすることにより、AquaLogic Service Bus Console の外部でアラート通知を受信し、ビジネス ニーズに従ってアラートを処理できます。たとえば、アラートにレポート ストリームを利用するアラート レポート プロバイダを開発し、HP OpenView や Tivoli などのカスタム コンソールにアラートを表示できます。
AquaLogic Service Bus には、メッセージまたはアラート用に 1 つまたは複数のレポート プロバイダを作成できる拡張可能なフレームワークが用意されています。
メッセージ レポートを有効にするには、最初にプロキシ サービスのメッセージ フローにレポート アクションを作成する必要があります。レポート アクションでは、各メッセージから情報を抽出し、その情報を AquaLogic Service Bus のレポート データ ストリームに書き込むことができます。アラート レポートのレポート アクションをコンフィグレーションする必要はありません。アラート データは常にレポート データ ストリームで使用可能です。詳細については、「メッセージ レポートを有効にする方法」を参照してください。
独自のレポート プロバイダの作成に必要なすべての情報は、AquaLogic Service Bus の Javadoc の com.bea.wli.reporting
にあります。Javadoc には、レポート プロバイダをパッケージ化する方法、配置場所、デプロイの方法、デプロイメント順序など、レポート プロバイダの実装に必要なものに関する情報が記載されています。レポート スキーマ (MessageReporting.xsd
) の場所は、<BEA_HOME>
/weblogic92/servicebus/lib/sb-schemas.jar
です。ここで、BEA_HOME
は BEA 製品のインストール先のディレクトリです。
図 5-1 に示すように、レポート メッセージとアラートの両方がレポート データ ストリームにエクスポートされます。レポート ステージでは、レポート アクションによって情報が各メッセージから抽出され、MessageReporting.xsd
に準拠するメタデータと共にレポート データ ストリームに書き込まれます。同様に、SLA マネージャは、レポート データ マネージャ API を使用して、AlertReporting.xsd
に準拠するメタデータと共にアラート レポート ストリームに書き込みます。アラートのレポート プロバイダまたは独自のメッセージ レポート プロバイダを開発する場合は、ReportingDataHandler
というインタフェースを実装し、ReportingDataManager
クラスを使用する必要があります。
ReportingDataHandler
インタフェースは、レポートまたはアラート データ ストリームを取得し、処理します。このストリームは、リレーショナル データベース、ファイル、JMS キューなどで処理したり格納したりすることができます。次のように、使用するストリームに応じて、データ ストリームを処理する適切な handle メソッドを実装する必要があります。
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, com.bea.xml.XmlObject data)
ReportingDataManager
は、レポート プロバイダのレジストリを保持するサーバローカル オブジェクトです。レポート プロバイダは、ReportingDataHandler
インタフェースを実装します。ReportingDataManager
には、以下の機能を実行するための操作が用意されています。
JMS レポート プロバイダは、レポート アクションによって各メッセージからレポート情報を取り込むプラグイン可能なアーキテクチャを備えています。クラスタ内のすべてのメッセージは集約され、データベース固有の形式で JMS レポート プロバイダ データ ストアに格納されます。AquaLogic Service Bus のインストールで提供される JMS レポート プロバイダを使用すると、AquaLogic Service Bus Console の [レポート] モジュールに JMS レポート プロバイダ データ ストアの情報が表示されます。
注意 : | JMS レポート プロバイダは、AquaLogic Service Bus ドメインの作成時に自動的にコンフィグレーションされます。このレポート プロバイダを使用しない場合は、割り当て解除する必要があります。詳細については、「レポート プロバイダの削除、停止、割り当て解除」を参照してください。 |
JMS レポート プロバイダは、プロデューサとコンシューマで構成されています。これらはスケーラビリティを向上させるために切り離されています。次の図に示すように、プロデューサは JMS プロデューサであり、MDB (メッセージ駆動型 Bean) が JMS コンシューマとして機能します。
レポート ステージには、レポート情報を収集し、ReportingDataManager
の各種の handle
操作を通じてレポート ストリームを JMS レポート プロバイダにディスパッチするレポート アクションが含まれています。JMSReportingDataHandler
は、レポート プロバイダの JMS プロデューサです。JMSReportingDataHandler
はレポート ストリームを取得し、情報を JMS キューに記録します。MDB は、JMS レポート キューをリスンします。メッセージは非同期に処理され、データは JMS レポート プロバイダ データ ストアに格納されます。
AquaLogic Service Bus のインストールで提供される JMS レポート プロバイダ、またはユーザ独自のレポート プロバイダからレポート メッセージを受信するには、まずプロキシ サービスのメッセージ フローにレポート アクションを作成する必要があります。レポート アクションでは、各メッセージから情報を抽出し、その情報を AquaLogic Service Bus のレポート データ ストリームに書き込むことができます。レポート アクションには、メッセージから抽出し、AquaLogic Service Bus のレポート データ ストリームに追加する情報を指定する必要があります。
アラート レポートのレポート アクションをコンフィグレーションする必要はありません。アラート データは常にレポート データ ストリームで使用可能です。
レポート アクションをコンフィグレーションする場合は、キー値を使用してメッセージからキー識別子を抽出します。複数のキーをコンフィグレーションできます。情報は、メッセージの本体からのみでなく、header 変数や inbound 変数など、メッセージに関連付けられている他のあらゆる変数からも取り込むことができます。メッセージ変数の詳細については、『AquaLogic Service Bus Console の使い方』の「メッセージ コンテキスト」を参照してください。
<?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
) と指定できます。
AquaLogic Service Bus のインストールで提供される JMS レポート プロバイダを使用している場合は、キーおよび関連付けられている値が [メッセージの概要] テーブルの [レポート インデックス] カラムに表示されます。複数のキーをコンフィグレーションした場合は、図 5-4 に示すように、キーと値の各ペアがセミコロンで区切られて [レポート インデックス] カラムに表示されます。
レポート アクションの作成方法または [メッセージの概要] ページの表示方法については、『AquaLogic Service Bus Console の使い方』の次のトピックを参照してください。
AquaLogic Service Bus Console の [レポート] モジュールには、JMS レポート プロバイダ データ ストアによって収集された情報が表示されます。[レポート] モジュールの最初のページには、抽出された情報と、メッセージがデータベースに書き込まれた時刻やメッセージに関連付けられているサービスなどのその他の情報を含む [メッセージの概要] テーブルが表示されます。データをフィルタおよびソートすることで、このページに表示される情報をカスタマイズできます。また、エラー情報など、特定のメッセージに関する詳細情報を表示することもできます。
[レポート] モジュールには、メッセージ データの管理に役立つパージ機能が用意されています。レポート データストアからすべてのメッセージをパージしたり、時間範囲に基づいてパージしたりできます。
JMS レポート プロバイダ データ ストアにはデータベースが必要です。WebLogic Server と共に、PointBase データベースの評価版がインストールされます。PointBase は開発環境には使用できますが、プロダクション環境には使用できません。AquaLogic Service Bus では、他のベンダのデータベースもサポートされています。JMS レポート プロバイダ データ ストアのホストに使用しているデータベースに対して、標準的なデータベース管理手続きを行ってください。詳細については、「JMS レポート プロバイダ ストア用データベースのコンフィグレーション」を参照してください。
[レポート] モジュールの使用方法の詳細については、『AquaLogic Service Bus Console の使い方』に記載されています。
ナビゲーション パネルで [レポート] をクリックすると、[メッセージの概要] ページが表示されます。このページには、データベース タイムスタンプでソートされたレポート メッセージのリストを示すテーブルがあります。
メッセージがフィルタされていない場合、[メッセージの概要] テーブルには、データベース タイムスタンプに基づいて最大 100 個の最新メッセージが表示されます。メッセージをフィルタした場合は、最大 1000 個のメッセージが表示されます。
注意 : | メッセージをフィルタした後、フィルタは更新するまで有効になります。 |
特定のメッセージを検索するには、[メッセージの概要] テーブルで [フィルタ] をクリックすることにより、メッセージの表示をフィルタできます。利用可能なフィルタを次の図に示します。
図 5-6 に示すように、指定した期間のレポート メッセージをサービス名、エラー コード、およびレポート インデックスでフィルタできます。メッセージをフィルタした後、ページのタイトルは [フィルタされたメッセージの概要] に変わります。[メッセージの概要] のフィルタの使用方法については、『AquaLogic Service Bus Console の使い方』の「レポート」にある「メッセージの表示と検索」を参照してください。
レポート メッセージに関する詳細情報を表示するには、[レポート インデックス] カラムでメッセージの名前をクリックします。メッセージの詳細表示ページが表示されます。
メッセージの詳細表示ページには、次の図に示すように、レポート メッセージに関する詳細情報が表示されます。
レポート データストアからすべてのメッセージをパージしたり、時間範囲に基づいてパージすることができます。メッセージのパージは、AquaLogic Service Bus Console で行われる非同期プロセスです。この機能により、パージをバックグラウンドで行いながら、AquaLogic Service Bus Console の [メッセージの概要] ページを使用できます。
パージの完了に要する時間は、パージ キューにあるメッセージの数によって異なります。パージ プロセス中にレポート メッセージを検索すると、メッセージの削除の速度が低下します。また、一部のデータのパージがまだ完了していない場合、[メッセージの概要] ページに不正なデータが表示されることがあります。
パージ プロセスは非同期であり、バックグラウンドで行われるため、AquaLogic Service Bus Console には、パージを実行中であることを示すメッセージは表示されません。ただし、パージの実行中に別のユーザがパージを開始しようとすると、次のメッセージが表示されます。
「すでにパージ作業を実行中です。後で実行してください
」
AquaLogic Service Bus では、JMS レポート プロバイダ データ ストア用のデータベースが必要です。WebLogic Server と共にインストールされる PointBase データベースは評価を目的としており、プロダクション環境用ではありません。評価以外の開発または他の目的で PointBase サーバを使用する場合は、PointBase ライセンスを別途入手する必要があります。
プロダクション環境では、サポートされているデータベースの 1 つを使用する必要があります。サポートされているデータベースに関する最新情報については、AquaLogic Service Bus でサポート対象のコンフィグレーションの WebLogic Platform でサポート対象のコンフィグレーションにあるサポート対象のデータベースとドライバに関する説明を参照してください。
AquaLogic Service Bus ドメインを作成する場合、Configuration Wizard ではデータベース テーブルが自動的に作成されません。開発環境では、AquaLogic Service Bus のインストールで提供される JMS レポート プロバイダは、指定されたデータベースのテーブルが存在するかどうかを実行時にチェックしません。テーブルが存在しない場合、レポート プロバイダによってテーブルが作成されます。テーブルが存在する場合は、そのテーブルが使用されます。
注意 : | PointBase を使用する場合は、Configuration Wizard でデータベースを指定する必要はありません。 |
JMS レポート プロバイダで使用するデータベースは、次のいずれかの方法で指定できます。
<BEA_HOME>
/weblogic92/integration/common/dbscripts
にあります。ここで、BEA_HOME は WebLogic 製品のインストール先の場所を表します
。
プロダクション用のデータベースのコンフィグレーションに関する詳細情報は、AquaLogic Service Bus のデプロイメント ガイドの以下の章に記載されています。
すでに説明したように、AquaLogic Service Bus のインストールで提供される JMS レポート プロバイダは、AquaLogic Service Bus ドメインの作成時に自動的にコンフィグレーションされます。このレポート プロバイダまたは任意のレポート プロバイダを使用しない場合は、割り当て解除する必要があります。
注意 : | レポート プロバイダがなくても、レポート アクションを定義できます。ただし、データの書き込みは行われません。 |
以下の節では、任意のレポート プロバイダの停止または割り当て解除の方法を説明します。
AquaLogic Service Bus ドメインでサーバの実行中にレポート プロバイダを停止する場合は、以下の手順に従います。
AquaLogic Service Bus ドメインでサーバの実行中にレポート プロバイダを割り当て解除する場合は、以下の手順に従います。
注意 : | この手順は、レポート プロバイダで独自のデータ ソースを使用している場合のみ必須です。AquaLogic Service Bus のインストールで提供される JMS レポート プロバイダを割り当て解除する場合は、以下の手順を実行する必要があります。 |
サーバが AquaLogic Service Bus ドメインで実行されていない場合は、WebLogic Scripting Tool (WLST) を使用して、AquaLogic 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()
AquaLogic Service Bus の JMS レポート プロバイダを割り当て解除すると、図 5-12 に示すように、AquaLogic Service Bus Console の [レポート] モジュールにレポート プロバイダがデプロイされていないことが示されます。
注意 : | クラスタでは、JMS レポート プロバイダはクラスタに割り当てられます。したがって、クラスタでメッセージを表示およびパージするには、少なくとも 1 つの管理対象サーバを管理サーバと共に実行するようコンフィグレーションする必要があります。管理対象サーバが実行されていない場合は、AquaLogic Service Bus Console に、前の図に示したメッセージが表示されます。 |
![]() ![]() ![]() |