この章では、イベント処理ネットワーク(EPN)のいずれかのステージでイベントをトレースしインジェクトするためにイベント・インスペクタのサービスを使用する方法について説明します。次の項を参照してください。
注意: イベント・インスペクタのサービスは、Oracle CEP本番サーバーでは使用しません。開発するときにのみ使用します。 |
イベント・インスペクタのサービスを使用して次のことを実行できます:
EPNのいずれかのステージからのイベントの表示
EPNのいずれかのステージへのイベントのインジェクト
開発中にOracle CQL問合せのテストやデバッグを行うためにイベント・インスペクタのサービスを使用できます。
この項では次について説明します:
テストおよびデバッグの詳細は、5.4項「Oracle CEPサーバー上で実行されているOracle CEPアプリケーションのデバッグ」を参照してください。
イベント・インスペクタのサービスを使用して、EPNのいずれかのステージから退出するイベントを表示します。
イベント・インスペクタのサービスは共通HTTPパブリッシュ・サブスクライブ・チャネルとサーバーを使用してイベントをトレースします。
トレース・イベントのbinding
属性にはoutbound
を設定する必要があります。
詳細は、次を参照してください:
イベント・インスペクタのサービスを使用して、EPNのいずれかのステージへイベントをインジェクトできます。
イベント・インスペクタのサービスはHTTPパブリッシュ・サブスクライブ・チャネルとサーバーを使用してイベントをインジェクトします。
インジェクトされたイベントのbinding
属性にはinbound
を設定する必要があります。
イベント・インスペクタ・クライアントを使用して次のようなイベントがインジェクトできます。
StockTick
イベントなど、タイプによる単一のシンプルなイベント
この場合、使用可能な特定のイベント・プロパティ・タイプはクライアントに依存します。
JSON形式の文字列として単一イベントのHTTPパブリッシュ・サブスクライブ・チャネルへの直接インジェクト
この場合、JSONが示すことのできるいずれかのイベント・プロパティを使用できます。
1つ以上のJSON形式の文字列を含むファイルを使用した複数のイベント
この場合、JSONが表示できるいずれかのイベント・プロパティを使用できます。イベント・インスペクタのサービス・クライアントがファイルを解析し、すべてのJSON文字列をHTTPパブリッシュ・サブスクライブ・チャネルにインジェクトします。
入力ファイルを作成するとき、JavaオブジェクトをJSON形式に変換するためにGSON Javaライブラリを使用できます。
詳細は、次を参照してください:
JavaBean、Java Class
、MapEvent
およびタプルのすべてのOracle CEPイベント・タイプがサポートされています。
イベント・インスペクタのサービスは、トレース・チャネルに公開する前にイベントをJavaScript Object Notation (JSON)形式に変換します。イベントはJSON形式でインジェクトする必要があります。
JSON形式のイベントは、例26-1に示す構造に準拠する必要があります。表26-1は必要な属性を示します。
例26-1 イベント・インスペクタJSONイベント
{ "event-type": "myEventType", "operation": "insert", "binding": "outbound", "value":{ "firstname": "Jane", "lastname": "Doe", "phone": { "code": 12345, "number": "office" }, } }
表26-1 イベント・インスペクタJSONイベントの必要な属性
属性 | 説明 |
---|---|
アプリケーション・アセンブリ・ファイルの |
|
イベントのタイプを指定します。
|
|
次のうちの1つ:
|
|
|
詳細は、次を参照してください:
イベント・インスペクタのサービスは動的HTTPパブリッシュ・サブスクライブ(HTTP pub-sub)チャネル(config.xml
で構成なし)を使用します。次の名前がつけられています。
/
SERVERNAME
/
APPLICATIONNAME
/
STAGENAME
/DIRECTION
説明:
SERVERNAME
: Oracle CEP EPNステージが実行されているOracle CEPサーバーの名前です。
APPLICATIONNAME
: Oracle CEPアプリケーションの名前。
STAGENAME
: EPNステージの名前。
DIRECTION
: 次のいずれか:
imput
: イベントをインジェクトする場合。
output
: イベントをトレースする場合。
例:
/server-1/myapp/MyInputAdapter/input
イベント・インスペクタのサービスは、次のいずれかのHTTPパブリッシュ・サブスクライブ・サーバーを使用します。
ローカル: event-inspector-service
要素でconfig.xml
ファイルを構成し、このマシンで実行中のローカル・パブリッシュ・サブスクライブ・サーバーの名前でpubsub-server-name
子要素を構成します。詳細は、26.2.1項「ローカル・イベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成方法」を参照してください。
リモート: event-inspector-service
要素でconfig.xml
ファイルを構成し、リモート・マシンで実行中のHTTPパブリッシュ・サブスクライブ・サーバーへのURLでpubsub-server-url
子要素を構成します。詳細は、26.2.2項「リモート・イベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成方法」を参照してください。
デフォルト: config.xml
ファイルで1つのみのHTTPパブリッシュ・サブスクライブ・サーバーが定義されていてローカルまたはリモートのHTTPパブリッシュ・サブスクライブ・サーバーが指定されていない場合、イベント・インスペクタ・サービスはデフォルトでローカルのHTTPパブリッシュ・サブスクライブ・サーバーを使用します。
イベント・インスペクタのサービスは同じHTTPパブリッシュ・サブスクライブ・チャネルとサーバーを使用してイベントをトレースしインジェクトします。
詳細は、次を参照してください:
ローカルまたはリモートのHTTPパブリッシュ・サブスクライブ・サーバーでイベント・インスペクタのサービスを構成できます。
コンポーネント構成ファイルでイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーを構成します。これらの構成ファイルの一般情報は、1.1.5項「コンポーネント構成ファイル」を参照してください。
config.xml
にHTTPパブリッシュ・サブスクライブ・サーバーが1つのみ定義されていて、ローカルまたはリモートのHTTPパブリッシュ・サブスクライブ・サーバーが指定されていない場合、イベント・インスペクタ・サービスはデフォルトでローカルのHTTPパブリッシュ・サブスクライブ・サーバーを使用します。詳細は、第8章「HTTPパブリッシュ・サブスクライブ・サーバー・アダプタの構成」を参照してください。
コンポーネント構成ファイルに、ローカルのHTTPパブリッシュ・サブスクライブ・サーバーでイベント・インスペクタのサービスを構成します。26.2.2項「リモートのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成方法」の説明に従って、リモートのHTTPパブリッシュ・サブスクライブ・サーバーを構成できます。
ローカルのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーを構成するには:
Oracle CEP IDE for EclipseのEPNエディタを開きます。
6.1項「EPNエディタを開く」を参照してください。
構成ファイルと関連付けたいずれかのコンポーネントを右クリックし、「構成のソースに移動」を選択します。
例26-2に示すように、event-inspector-service
要素を追加します。
例26-2 イベント・インスペクタ・サービス・ローカルのHTTPパブリッシュ・サブスクライブ・サーバー
<event-inspector-service> <name>myEventInspectorConfig</name> <pubsub-server-name>myPubSub</pubsub-server-name> </event-inspector-service>
例26-3に示すように、myPubSub
のpubsub-server-name値は、ローカルのOracle CEPサーバーconfig.xml
ファイルで定義されたhttp-pubsub
要素のname
子要素の値です。
例26-3 Oracle CEP組込みのHTTPパブリッシュ・サブスクライブ・サーバーのhttp-pubsub要素
... <http-pubsub> <name>myPubSub</name> <path>/pubsub</path> <pub-sub-bean> <server-config> <supported-transport> <types> <element>long-polling</element> </types> </supported-transport> <publish-without-connect-allowed>true</publish-without-connect-allowed> </server-config> <channels> ... </channels> </pub-sub-bean> </http-pubsub> ...
config.xml
ファイルを保存して閉じます。
コンポーネント構成ファイルに、リモートのHTTPパブリッシュ・サブスクライブ・サーバーでイベント・インスペクタのサービスを構成します。26.2.1項「ローカルのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成方法」の説明に従って、ローカルのHTTPパブリッシュ・サブスクライブ・サーバーを構成できます。
リモートのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーを構成するには:
Oracle CEP IDE for EclipseのEPNエディタを開きます。
6.1項「EPNエディタを開く」を参照してください。
構成ファイルと関連付けたいずれかのコンポーネントを右クリックし、「構成のソースに移動」を選択します。
例26-4に示すように、event-inspector-service
要素を追加します。
例26-4 イベント・インスペクタ・サービス・リモートのHTTPパブリッシュ・サブスクライブ・サーバー
<event-inspector-service> <name>myEventInspectorConfig</name> <pubsub-server-url>http://HOST
:PORT
/PATH
</pubsub-server-url> </event-inspector-service>
説明:
HOST
: リモートのOracle CEPサーバーのホスト名またはIPアドレスです。
PORT
: リモートのOracle CEPサーバーconfig.xml
ファイルで定義されたリモートのOracle CEPサーバーnetio
ポートです。デフォルトは9002です。
PATH
: リモートのOracle CEPサーバーconfig.xml
ファイルで定義されたhttp-pubsub
要素pathの
子要素の値です。
例26-3に示すhttp-pubsub
構成の場合、有効なpubsub-server-url
は、次を参照してください。
http://remotehost:9002/pubsub
例26-5 Oracle CEP組込みのHTTPパブリッシュ・サブスクライブ・サーバーのhttp-pubsub要素
... <http-pubsub> <name>myPubSub</name> <path>/pubsub</path> <pub-sub-bean> <server-config> <supported-transport> <types> <element>long-polling</element> </types> </supported-transport> <publish-without-connect-allowed>true</publish-without-connect-allowed> </server-config> <channels> ... </channels> </pub-sub-bean> </http-pubsub> ...
config.xml
ファイルを保存して閉じます。
イベント・インスペクタ・サービスHTTPパブリッシュ・サブスクライブ・サーバーを構成した後、イベントをインジェクトするためにイベント・インスペクタ・クライアントを使用できます。
この項では、イベントをインジェクトするためにイベント・インスペクタのサービスを使用する方法について説明します。次の項を参照してください。
詳細は、次を参照してください:
EPNのいずれかのステージでイベントをインジェクトするためにOracle CEP Visualizerが使用できます。
詳細は、次を参照してください:
『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のイベント・インスペクタ・サービス動的チャネルへの単一イベントのインジェクト方法に関する項
『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のJSON文字列としてイベントをイベント・インスペクタ・サービス動的チャネルにインジェクトする方法に関する項
イベント・インスペクタ・サービスHTTPパブリッシュ・サブスクライブ・サーバーが構成した後、イベントをトレースするためにイベント・インスペクタ・クライアントを使用できます。
この項では、イベントをトレースするためにイベント・インスペクタのサービスを使用する方法について説明します。次の項を参照してください。
詳細は、次を参照してください:
Oracle CEP Visualizerを使用して、EPNのいずれかのステージから退出するイベントをトレースできます。
詳細は、次を参照してください:
『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』の動的チャネルでイベントをトレースする方法に関する項