ヘッダーをスキップ
Oracle® Complex Event Processing開発者ガイド
11g リリース1 (11.1.1.4.0) for Eclipse
B61654-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

26 イベント・インスペクタでのアプリケーションのテスト

この章では、イベント処理ネットワーク(EPN)のいずれかのステージでイベントをトレースしインジェクトするためにイベント・インスペクタのサービスを使用する方法について説明します。次の項を参照してください。


注意:

イベント・インスペクタのサービスは、Oracle CEP本番サーバーでは使用しません。開発するときにのみ使用します。

26.1 イベント・インスペクタでのアプリケーションのテストの概要  

イベント・インスペクタのサービスを使用して次のことを実行できます:

開発中にOracle CQL問合せのテストやデバッグを行うためにイベント・インスペクタのサービスを使用できます。

この項では次について説明します:

テストおよびデバッグの詳細は、5.4項「Oracle CEPサーバー上で実行されているOracle CEPアプリケーションのデバッグ」を参照してください。

26.1.1 イベントのトレース

イベント・インスペクタのサービスを使用して、EPNのいずれかのステージから退出するイベントを表示します。

イベント・インスペクタのサービスは共通HTTPパブリッシュ・サブスクライブ・チャネルとサーバーを使用してイベントをトレースします。

トレース・イベントのbinding属性にはoutboundを設定する必要があります。

詳細は、次を参照してください:

26.1.2 イベントのインジェクト

イベント・インスペクタのサービスを使用して、EPNのいずれかのステージへイベントをインジェクトできます。

イベント・インスペクタのサービスはHTTPパブリッシュ・サブスクライブ・チャネルとサーバーを使用してイベントをインジェクトします。

インジェクトされたイベントのbinding属性にはinboundを設定する必要があります。

イベント・インスペクタ・クライアントを使用して次のようなイベントがインジェクトできます。

  • StockTickイベントなど、タイプによる単一のシンプルなイベント

    この場合、使用可能な特定のイベント・プロパティ・タイプはクライアントに依存します。

  • JSON形式の文字列として単一イベントのHTTPパブリッシュ・サブスクライブ・チャネルへの直接インジェクト

    この場合、JSONが示すことのできるいずれかのイベント・プロパティを使用できます。 

  • 1つ以上のJSON形式の文字列を含むファイルを使用した複数のイベント

    この場合、JSONが表示できるいずれかのイベント・プロパティを使用できます。イベント・インスペクタのサービス・クライアントがファイルを解析し、すべてのJSON文字列をHTTPパブリッシュ・サブスクライブ・チャネルにインジェクトします。

    入力ファイルを作成するとき、JavaオブジェクトをJSON形式に変換するためにGSON Javaライブラリを使用できます。

詳細は、次を参照してください:

26.1.3 イベント・インスペクタのイベント・タイプ

JavaBean、Java ClassMapEventおよびタプルのすべての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イベントの必要な属性

属性 説明

event-type

アプリケーション・アセンブリ・ファイルのevent-type-repositoryで定義されたOracle CEPイベントの名前。

operation

イベントのタイプを指定します。

  • insert: 挿入イベント。

  • delete: 削除イベント

  • update: 更新イベント

  • heartbeat: ハートビート・イベント

binding

次のうちの1つ:

  • inbound: インジェクト・イベント。

  • outbound: トレース・イベント。

value

event-typeで定義された1つ以上のJSON形式のイベント・プロパティ。


詳細は、次を参照してください:

26.1.4 イベント・インスペクタHTTPパブリッシュ・サブスクライブ・チャネルおよびサーバー

イベント・インスペクタのサービスは動的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パブリッシュ・サブスクライブ・サーバーを使用します。

イベント・インスペクタのサービスは同じHTTPパブリッシュ・サブスクライブ・チャネルとサーバーを使用してイベントをトレースしインジェクトします。

詳細は、次を参照してください:

26.1.5 イベント・インスペクタのクライアント

イベント・インスペクタ・サービスは次のクライアントをサポートします。

26.1.5.1 Oracle CEP Visualizer

Oracle CEP Visualizerを使用してイベント・インスペクタ・サービスがアクセスできます。

詳細は、『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のイベント・インスペクタでのアプリケーションのテストに関する項を参照してください。

26.2 イベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成

ローカルまたはリモートのHTTPパブリッシュ・サブスクライブ・サーバーでイベント・インスペクタのサービスを構成できます。

コンポーネント構成ファイルでイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーを構成します。これらの構成ファイルの一般情報は、1.1.5項「コンポーネント構成ファイル」を参照してください。

config.xmlにHTTPパブリッシュ・サブスクライブ・サーバーが1つのみ定義されていて、ローカルまたはリモートのHTTPパブリッシュ・サブスクライブ・サーバーが指定されていない場合、イベント・インスペクタ・サービスはデフォルトでローカルのHTTPパブリッシュ・サブスクライブ・サーバーを使用します。詳細は、第8章「HTTPパブリッシュ・サブスクライブ・サーバー・アダプタの構成」を参照してください。

26.2.1 ローカルのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成方法

コンポーネント構成ファイルに、ローカルのHTTPパブリッシュ・サブスクライブ・サーバーでイベント・インスペクタのサービスを構成します。26.2.2項「リモートのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成方法」の説明に従って、リモートのHTTPパブリッシュ・サブスクライブ・サーバーを構成できます。

ローカルのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーを構成するには:

  1. Oracle CEP IDE for EclipseのEPNエディタを開きます。

    6.1項「EPNエディタを開く」を参照してください。

  2. 構成ファイルと関連付けたいずれかのコンポーネントを右クリックし、「構成のソースに移動」を選択します。

  3. 例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>
    ...
    
  4. config.xmlファイルを保存して閉じます。

26.2.2リモートのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成方法

コンポーネント構成ファイルに、リモートのHTTPパブリッシュ・サブスクライブ・サーバーでイベント・インスペクタのサービスを構成します。26.2.1項「ローカルのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーの構成方法」の説明に従って、ローカルのHTTPパブリッシュ・サブスクライブ・サーバーを構成できます。

リモートのイベント・インスペクタHTTPパブリッシュ・サブスクライブ・サーバーを構成するには:

  1. Oracle CEP IDE for EclipseのEPNエディタを開きます。

    6.1項「EPNエディタを開く」を参照してください。

  2. 構成ファイルと関連付けたいずれかのコンポーネントを右クリックし、「構成のソースに移動」を選択します。

  3. 例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>
    ...
    
  4. config.xmlファイルを保存して閉じます。

26.3 イベントのインジェクト

イベント・インスペクタ・サービスHTTPパブリッシュ・サブスクライブ・サーバーを構成した後、イベントをインジェクトするためにイベント・インスペクタ・クライアントを使用できます。

この項では、イベントをインジェクトするためにイベント・インスペクタのサービスを使用する方法について説明します。次の項を参照してください。

詳細は、次を参照してください:

26.3.1 Oracle CEP Visualizerを使用してイベントをインジェクトする方法

EPNのいずれかのステージでイベントをインジェクトするためにOracle CEP Visualizerが使用できます。

詳細は、次を参照してください:

  • 『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のイベント・インスペクタ・サービス動的チャネルへの単一イベントのインジェクト方法に関する項

  • 『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のJSON文字列としてイベントをイベント・インスペクタ・サービス動的チャネルにインジェクトする方法に関する項

26.4 イベントのトレース

イベント・インスペクタ・サービスHTTPパブリッシュ・サブスクライブ・サーバーが構成した後、イベントをトレースするためにイベント・インスペクタ・クライアントを使用できます。

この項では、イベントをトレースするためにイベント・インスペクタのサービスを使用する方法について説明します。次の項を参照してください。

詳細は、次を参照してください:

26.4.1 Oracle CEP Visualizerを使用してイベントをトレースする方法

Oracle CEP Visualizerを使用して、EPNのいずれかのステージから退出するイベントをトレースできます。

詳細は、次を参照してください:

  • 『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』の動的チャネルでイベントをトレースする方法に関する項