ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Event Processing開発者ガイド
11gリリース1 (11.1.1.7) for Eclipse
B61654-06
  目次へ移動
目次

前
 
次
 

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

この章では、イベント・インスペクタのサービスを使用して、Oracle Event Processingイベント処理ネットワーク(EPN)の任意のステージでイベントをトレースおよびインジェクトする方法について説明します。

この章の内容は次のとおりです。


注意:

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


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

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

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

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

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

22.1.1イベントのトレース

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JavaBean、MapおよびタプルのすべてのOracle Event Processingイベント・タイプがサポートされています。

イベント・インスペクタのサービスは、トレース・チャネルに公開する前にイベントをJavaScript Object Notation (JSON)形式に変換します。イベントはJSON形式でインジェクトする必要があります。

JSON形式のイベントは、例22-1に示す構造に準拠する必要があります。表22-1は必要な属性を示します。


注意:

イベント・インスペクタで使用されるイベント・タイプのプロパティ・タイプとして、バイト配列はサポートされていません。


例22-1 イベント・インスペクタJSONイベント

{
    "event-type": "myEventType",
    "operation": "insert",
    "binding": "outbound",
    "value":{
        "firstname": "Jane",
        "lastname": "Doe",
        "phone": {
            "code": 12345,
            "number": "office"
        },
    }
}

表22-1 イベント・インスペクタJSONイベントの必要な属性

属性 説明

event-type

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

operation

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

  • insert: 挿入イベント。

  • delete: 削除イベント

  • update: 更新イベント

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

binding

次のうちの1つ:

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

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

value

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


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

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

イベント・インスペクタのサービスは動的HTTPパブリッシュ・サブスクライブ(HTTP pub-sub)チャネル(config.xmlで構成なし)を使用します。次の名前がつけられています。

/SERVERNAME/APPLICATIONNAME/STAGENAME/DIRECTION

説明:

  • SERVERNAME:Oracle Event Processing EPNステージが実行されているOracle Event Processingサーバーの名前。

  • APPLICATIONNAME: Oracle Event Processingアプリケーションの名前。

  • STAGENAME: EPNステージの名前。

  • DIRECTION: 次のいずれか:

    • input: イベントをインジェクトする場合。

    • output: イベントをトレースする場合。

例:

/server-1/myapp/MyInputAdapter/input

イベント・インスペクタのサービスは、HTTPパブリッシュ・サブスクライブ・サーバーを使用します。次のいずれかになります。

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

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

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

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

22.1.5.1 Oracle Event Processing Visualizer

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

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

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

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

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

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

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

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

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

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

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

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

  3. 例22-2に示すように、event-inspector要素を追加します。

    例22-2 イベント・インスペクタ・サービス・ローカルのHTTPパブリッシュ・サブスクライブ・サーバー

    <event-inspector>
        <name>myEventInspectorConfig</name>
        <pubsub-server-name>myPubSub</pubsub-server-name>
    </event-inspector>
    

    例22-3に示すように、myPubSubのpubsub-server-name値は、ローカルのOracle Event Processingサーバーconfig.xmlファイルで定義されたhttp-pubsub要素のname子要素の値です。

    例22-3 Oracle Event Processing組込みの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ファイルを保存して閉じます。

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

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

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

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

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

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

  3. 例22-4に示すように、event-inspector要素を追加します。

    例22-4 イベント・インスペクタ・サービス・リモートのHTTPパブリッシュ・サブスクライブ・サーバー

    <event-inspector>
        <name>myEventInspectorTraceConfig</name>
        <pubsub-server-url>http://HOST:PORT/PATH</pubsub-server-url>
    </event-inspector>
    

    説明:

    • HOST: リモートのOracle Event Processingサーバーのホスト名またはIPアドレスです。

    • PORT: リモートのOracle Event Processingサーバーconfig.xmlファイルで定義されたリモートのOracle Event Processingサーバーnetioポートです。デフォルトは9002です。

    • PATH: リモートのOracle Event Processingサーバーconfig.xmlファイルで定義されたhttp-pubsub要素pathの子要素の値です。

    例22-3に示すhttp-pubsub構成の場合、有効なpubsub-server-urlは、次を参照してください。

    http://remotehost:9002/pubsub
    

    例22-5 Oracle Event Processing組込みの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ファイルを保存して閉じます。

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

イベント・インスペクタ・サービスHTTPパブリッシュ・サブスクライブ・サーバーを構成した後、イベントをインジェクトするためにイベント・インスペクタ・クライアントを使用できます。イベント・インジェクションを構成するには、Oracle Event Processing Visualizerを使用するか、アプリケーションでコンポーネント構成ファイルを編集して、アプリケーションのデプロイ時または再デプロイ時に設定されるインジェクション設定を指定します。

Oracle Event Processing Visualizerで、アプリケーションの再デプロイ時に破棄できる設定でイベント・インジェクションを構成します。Oracle Event Processing Visualizerを使用してイベントをインジェクトする方法の詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』のイベント・インスペクタ・サービス動的チャネルでの単純イベントのインジェクト方法およびイベント・インスペクタ・サービス動的チャネルでイベントをJSON文字列としてインジェクトする方法に関する項を参照してください。

アプリケーションのデプロイ時または再デプロイ時に設定されるイベント・インジェクション設定を指定するには、インジェクトするステージのコンポーネント構成設定を編集して、インジェクションを構成します。

たとえば、22.3項「イベント・インジェクション・コンポーネント構成設定」に示すコンポーネント構成の一部は、イベント・インジェクション用にプロセッサを構成する方法を示しています。inject-parameters要素のactive子要素はインジェクションをオンにすることを指定し、channel-name要素はインジェクトされる要素の送信元のHTTPパブリッシュ・サブスクライブ(HTTP pub-sub)チャネルを指定します。

例22-6 イベント・インジェクション・コンポーネント構成設定

<processor>
    <name>FindCrossRates</name>
    <inject-parameters>
        <active>true</active>
        <channel-name>/NonClusteredServer/fx/FindCrossRates/output</channel-name>
    </inject-parameters>
    <rules>
        <!-- Query rules omitted. -->
    </rules>
</processor>

これらの要素の参照情報は、D.55項「inject-parameters」を参照してください。

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

22.4 イベントのトレース

イベント・インスペクタ・サービスHTTPパブリッシュ・サブスクライブ(HTTP pub-sub)サーバーを構成した後、イベント・インスペクタ・クライアントを使用して、EPNのいずれかのステージから退出するイベントをトレースできます。イベントをトレースするには、Oracle Event Processing Visualizerを使用してトレースを構成するか、アプリケーションでコンポーネント構成ファイルを編集して、アプリケーションのデプロイ時または再デプロイ時に設定されるトレース設定を指定します。

Oracle Event Processing Visualizerで、アプリケーションの再デプロイ時に破棄できる設定でイベント・トレースを構成します。Oracle Event Processing Visualizerを使用してイベントをトレースする方法の詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』の動的チャネルでイベントをトレースする方法に関する項を参照してください。

アプリケーションのデプロイ時または再デプロイ時に設定されるイベント・トレース構成について、トレース元のステージのコンポーネント構成設定を編集して、トレースを構成します。

たとえば、22.4項「イベント・トレース・コンポーネント構成設定」に示すコンポーネント構成の一部は、イベント・トレース用にプロセッサを構成する方法を示しています。trace-parameters要素のactive子要素はトレースをオンにすることを指定し、channel-name要素はトレースされる要素の送信先のHTTPパブリッシュ・サブスクライブ(HTTP pub-sub)チャネルを指定します。

例22-7 イベント・トレース・コンポーネント構成設定

<processor>
    <name>FindCrossRates</name>
    <trace-parameters>
        <active>true</active>
        <channel-name>/NonClusteredServer/fx/FindCrossRates/output</channel-name>
    </trace-parameters>
    <rules>
        <!-- Query rules omitted. -->
    </rules>
</processor>

これらの要素の参照情報は、D.106項「trace-parameters」を参照してください。

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