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

前
 
次
 

7 JMSアダプタの構成

この節では、次の項目について説明します。

7.1 JMSアダプタ構成の概要

Oracle CEP JMSアダプタは、Javaクライアントを提供するJava EE準拠のJMSサービス・プロバイダをサポートします。詳細は、7.1.1項「JMSサービス・プロバイダ」を参照してください。

Oracle CEPでは、Javaコードを記述することなくJMS送り先との間でメッセージを送受信するためにイベント・アプリケーションで使用できる、次のJava Message Service (JMS)アダプタが提供されます。

JMSに関する一般情報については、http://java.sun.com/products/jms/でSun Developer NetworkのJava Message Serviceを参照してください。

7.1.1 JMSサービス・プロバイダ

Oracle CEP JMSアダプタは、Javaクライアントを提供するJava EE準拠のJMSサービス・プロバイダをサポートします。

この章では、次のJMSサービス・プロバイダとともに使用するOracle CEP JMSインバウンドおよびアウトバウンド・アダプタの構成方法について説明します。

ご使用のJMSサービス・プロバイダがこのリストにない場合でも、JMSサービス・プロバイダで使用するOracle CEP JMSアダプタを構成できます。構成モデルとして7.2.4項「Tibco EMS JMS用にJMSアダプタを手動で構成する方法」の手順を確認し、JMSサービス・プロバイダのドキュメントを参照して、この手順をご使用のJMSサービス・プロバイダに適合するように変更してください。

詳細は、7.2項「JMSサービス・プロバイダのJMSアダプタの構成」を参照してください。

7.1.2 インバウンドJMSアダプタ

インバウンドJMSアダプタは、JMS送り先からメッセージを受信し、イベントに変換します。

EPNアセンブリ・ファイルで次のようにインバウンドJMSアダプタを指定します。

...
    <wlevs:adapter id="myJmsInbound" provider="jms-inbound">
        ...
    </wlevs:adapter>
...

インバウンドJMSアダプタをコンポーネント構成ファイルで次のように構成します。

...
    <jms-adapter>
        <name>myJmsInbound</name>
        <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
        <destination-jndi-name>Queue1</destination-jndi-name>
        <user>weblogic</user>
        <password>weblogic</password>
        <work-manager>JettyWorkManager</work-manager>
        <concurrent-consumers>1</concurrent-consumers>
        <session-transacted>false</session-transacted>
    </jms-adapter>
...

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

詳細については、次を参照してください。

7.1.2.1 JMSメッセージとイベント・タイプの間の変換

デフォルトでは、インバウンドJMSアダプタは、次の条件に当てはまる場合にプロパティ名を指定のイベント・タイプと一致させることで、JMSメッセージをイベントに自動的に変換します。

  • JMSアダプタ・コンポーネント構成ファイルでjms-adapter要素のevent-type子要素を使用して、イベント・タイプを指定する必要があります。

    JMSアダプタは、着信JMSメッセージをこの要素が指定するOracle CEPイベント・タイプに変換します。

  • JMSメッセージは、MapMessageタイプである必要があります。

    各着信メッセージについて、指定のイベント・タイプを持つイベントが作成されます。着信メッセージの各マップ要素については、アダプタによってイベント・タイプのプロパティが検索され、見つかった場合は対応する値が設定されます。

オプションで、JMSメッセージのイベント・タイプへの変換方法をカスタマイズできます。独自のJavaクラスを作成して、着信JMSメッセージを1つ以上のイベント・タイプに変換するかを正確に指定します。この場合は、JMSアダプタ・コンポーネント構成ファイルでjms-adapter要素のevent-type子要素を使用してイベント・タイプを指定しません。

詳細は、7.3項「JMSメッセージとイベント・タイプ間のカスタム・コンバータの作成」を参照してください。

7.1.2.2 シングルおよびマルチスレッド・インバウンドJMSアダプタ

デフォルトでは、インバウンドJMSアダプタはシングルスレッドです。つまり、インバウンドJMSアダプタは、シングルスレッドを使用してJMS送り先からメッセージを読み取ります。

インバウンドJMSアダプタがシングルスレッドであると、イベント順序が保証されます。

スケーラビリティを向上させるために、インバウンドJMSアダプタでマルチスレッドを使用してJMS送り先からメッセージを読み取るように構成できます。このように構成する場合、最も簡単な方法はワーク・マネージャを使用してアダプタを構成することです。アダプタだけが使用する専用のワーク・マネージャを指定するか、他のアダプタやJettyなどのいくつかのコンポーネントでワーク・マネージャを共有できます。

インバウンドJMSアダプタがマルチスレッドであると、イベント順序は保証されません。

詳細については、次を参照してください。

7.1.3 アウトバウンドJMSアダプタ

アウトバウンドJMSアダプタは、イベントをJMS送り先に送信します。プロパティ名とイベント・タイプを一致させることで、イベントはJMSマップ・メッセージに自動的に変換されます。

通常は、独自のJavaクラスを作成してイベント・タイプを送信JMSメッセージに変換する方法を正確に指定することで、この変換もカスタマイズします。

独自のコンバータ・クラスを指定せずに、メッセージとイベント・タイプの間の変換処理がOracle CEPによって実行されるようにする場合は、次のことが当てはまります。

  • JMSアダプタ・コンポーネント構成ファイルでjms-adapter要素のevent-type子要素を使用して、イベント・タイプを指定する必要があります。

    JMSアダプタは、着信JMSメッセージをこの要素が指定するOracle CEPイベント・タイプに変換します。

  • デフォルトでは、アウトバウンドJMSアダプタのデフォルト・コンバータでは、MapMessageタイプのJMSメッセージが作成されます。イベントのプロパティごとに、出力のMapMessageに対応する要素が作成されます。

EPNアセンブリ・ファイルで次のようにアウトバウンドJMSアダプタを指定します。

...
    <wlevs:adapter id="myJmsOutbound" provider="jms-outbound">
        ...
    </wlevs:adapter>
...

アウトバウンドJMSアダプタをコンポーネント構成ファイルで次のように構成します。

...
    <jms-adapter>
        <name>myJmsOutbound</name>
        <event-type>JMSEvent</event-type>
        <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
        <destination-jndi-name>Topic1</destination-jndi-name>
        <delivery-mode>nonpersistent</delivery-mode>
    </jms-adapter>
...

詳細については、次を参照してください。

7.2 JMSサービス・プロバイダのJMSアダプタの構成

この項では、Oracle CEP JMSインバウンドおよびアウトバウンド・アダプタの構成方法を次のような内容で説明します。

この項では、次のJMSサービス・プロバイダに固有の例を示します。

ご使用のJMSサービス・プロバイダがこのリストにないが、Javaクライアントを提供している場合は、そのプロバイダで使用するOracle CEP JMSアダプタを構成できます。構成モデルとして7.2.4項「Tibco EMS JMS用にJMSアダプタを手動で構成する方法」の手順を確認し、JMSサービス・プロバイダのドキュメントを参照して、この手順をご使用のJMSサービス・プロバイダに適合するように変更してください。

詳細は、7.1.1項「JMSサービス・プロバイダ」を参照してください。


注意:

以降の項では、Oracle CEPアプリケーションがEPNアセンブリ・ファイルとコンポーネント構成ファイルを使用してすでに作成済であり、インバウンドまたはアウトバウンドJMSアダプタを使用するようにアプリケーションを更新することを想定しています。まだ作成していない場合、詳細は第1章「Oracle CEPアプリケーションの作成の概要」を参照してください。

7.2.1 Oracle CEP IDE for Eclipseを使用したJMSアダプタの構成方法

JMSアダプタを作成および構成する最も簡単な方法は、Oracle CEP IDE for Eclipseアダプタ・ウィザードを使用することです。

詳細は、6.4.1.2項「アダプタ・ノードの作成方法」を参照してください。

このアダプタ・ウィザードを使用して基本JMSアダプタ構成を作成および指定したら、7.2.2項「JMSアダプタを手動で構成する方法」を確認して構成を完了します。

7.2.2 JMSアダプタを手動で構成する方法

この項では、JMSアダプタを手動で作成および構成する方法について説明します。ご使用のアプリケーションに応じて必要とされる詳細な手順を説明します。

7.2.1項「Oracle CEP IDE for Eclipseを使用したJMSアダプタの構成方法」で説明しているとおり、JMSアダプタを作成および構成する最も簡単な方法はOracle CEP IDE for Eclipseアダプタ・ウィザードを使用することです。このアダプタ・ウィザードを使用して基本JMSアダプタ構成を作成および指定したら、この手順を確認して構成を完了します。

JMSアダプタを手動で構成するには、次の手順を実行します。

  1. アプリケーションのEPNアセンブリ・ファイルで、アプリケーションで使用するインバウンドおよびアウトバウンドJMSアダプタごとにwlevs:adapter要素を追加します。

    例7-1は、JMSインバウンド・アダプタのwlevs:adapter要素を示しています。

    例7-1 インバウンド・アダプタのwlevs:adapter要素

    <wlevs:adapter id="inboundJmsAdapter1" provider="jms-inbound">
    ...
    </wlevs:adapter>
    

    参照:

  2. アプリケーションのコンポーネント構成ファイルで、アプリケーションで使用するインバウンドおよびアウトバウンドJMSアダプタごとにjms-adapter要素を追加します。

    例7-2は、例7-1のJMSインバウンド・アダプタのjms-adapter要素を示しています。

    例7-2 インバウンド・アダプタのjms-adapter要素

    <jms-adapter>
        <name>inboundJmsAdapter1</name>
    ...
    </jms-adapter>
    

    jms-adapter要素について、name子要素を、対応するwlevs:adapter要素のid子要素に設定する必要があります。

    参照:

  3. JMSメッセージおよびOracle CEPイベント・タイプの間の変換方法を決定します。

    1. JMSアダプタで自動変換を行う場合は、JMSアダプタ・コンポーネント構成ファイルでjms-adapter要素のevent-type子要素を使用してイベント・タイプを指定します。

      参照:

    2. JMSアダプタでカスタム変換を行う場合は、カスタム・コンバータJavaクラスを作成してEPNアセンブリ・ファイルに登録します。

      7.3項「JMSメッセージとイベント・タイプ間のカスタム・コンバータの作成」を参照してください。

  4. 例7-3のように、JMSプロバイダのjms-adapter要素を構成します。

    例7-3 Tibco EMS JMSのjms-adapter要素の構成

    <jms-adapter>
        <name>inboundJmsAdapter1</name>
        ...
        <jndi-provider-url> ... </jndi-provider-url>
        <jndi-factory> ... </jndi-factory>
        <connection-jndi-name> ... </connection-jndi-name>
        <destination-jndi-name> ... </destination-jndi-name>
        ...
    </jms-adapter>
    

    Oracle CEP JMSアダプタがサポートするすべてのオプションについては、以下を参照してください。

    特定のJMSプロバイダのサンプルについては、以下を参照してください。

    詳細は、ご使用のJMSサービス・プロバイダのドキュメントを参照してください。

  5. コンポーネント構成ファイルにJMSプロバイダのクライアント・パスワードを指定する場合は、パスワードの暗号化を検討してください。

    7.4項「JMSアダプタのコンポーネント構成ファイル内のパスワードの暗号化」を参照してください。

  6. 以下の項目を含む、JMSクライアント・アプリケーション・ライブラリを作成します。

    • ご使用のJMSサービス・プロバイダが指定するJMSクライアントJARファイル。

    • Java Objectメッセージを使用している場合は、メッセージングに使用するJavaクラスをライブラリ・バンドルにパッケージ化する必要があります。

      これらのJavaクラスは、このJMSクライアントJARアプリケーション・ライブラリに入れる場合があります。


    注意:

    このJMSクライアントJARアプリケーション・ライブラリは、次の条件を満たす必要があります。
    • すべてのプロバイダ固有のパッケージをエクスポートします。

    • (可能な場合)メッセージングに使用するJavaクラスをエクスポートします。

    • javax.jmsおよびjavax.namingをインポートします。

    アプリケーション・バンドルは、プロバイダ固有のパッケージをエクスポートする必要はありません。

    アプリケーション・バンドルは、適用可能な場合、メッセージに使用するJavaクラスをインポートする必要があります。


    詳細は、24.1.3.3項「アプリケーション・ライブラリの作成」を参照してください。

    特定のJMSプロバイダのサンプルについては、7.2.4項「Tibco EMS JMS用にJMSアダプタを手動で構成する方法」を参照してください。

  7. JMSクライアントJARアプリケーション・ライブラリを該当するOracle CEPサーバー・アプリケーション・ライブラリのディレクトリにコピーします。

    1. バンドルがドライバの場合は、ライブラリ拡張ディレクトリに置く必要があります。

      24.1.3.2項「ライブラリ拡張ディレクトリ」を参照してください。

    2. バンドルがドライバでない場合は、ライブラリ・ディレクトリに置くことができます。

      24.1.3.1「ライブラリ・ディレクトリ」を参照してください。

    詳細は、24.3.4項「Oracle CEP IDE for Eclipseを使用したアプリケーション・ライブラリの更新方法」を参照してください。

  8. ステップ3でカスタム・コンバータ・クラスを作成した場合は、アプリケーションのMANIFEST.MFファイルを更新して、次のパッケージをImport-Packageヘッダーに追加します。

    Import-Package: javax.jms,javax.naming, ...
        ...
    

    4.7.5項「パッケージのインポート方法」を参照してください。

7.2.3 Oracle WebLogic Server JMS用にJMSアダプタを手動で構成する方法

Oracle CEPには、WebLogic JMSクライアントが含まれます。

Oracle WebLogicサーバーに接続する際、Oracle CEPはデフォルトでT3クライアントを使用します。

Oracle WebLogic Serverを-useIIOPコマンドライン引数を使用して起動することで、IIOP WebLogicクライアントを使用できます。これは、使用されるJMSコードとは独立した(提供されるアダプタの1つであるか、カスタムJMSコードであるに関係なく)サーバー全体の設定です。

T3とIIOPを実行中のOracle CEPサーバー内で混在させて使用することはできません。

詳細は、7.2項「JMSサービス・プロバイダのJMSアダプタの構成」を参照してください。

Oracle WebLogic Server JMSプロバイダを使用するように、組込みJMSインバウンドおよびアウトバウンド・アダプタを手動で構成できます。

7.2.1項「Oracle CEP IDE for Eclipseを使用したJMSアダプタの構成方法」で説明しているとおり、JMSアダプタを作成および構成する最も簡単な方法はOracle CEP IDE for Eclipseアダプタ・ウィザードを使用することです。このアダプタ・ウィザードを使用して基本JMSアダプタ構成を作成および指定したら、この手順を確認して構成を完了します。

Oracle WebLogic Server JMSのJMSアダプタを手動で構成するには、次の手順を実行します。

  1. アプリケーションで使用するインバウンドおよびアウトバウンドJMSアダプタごとにwlevs:adapter要素を追加して、アプリケーションのEPNアセンブリ・ファイルを更新します。

    例7-4は、JMSインバウンド・アダプタのwlevs:adapter要素を示しています。

    例7-4 インバウンド・アダプタのwlevs:adapter要素

    <wlevs:adapter id="inboundJmsAdapter1" provider="jms-inbound">
    ...
    </wlevs:adapter>
    

    参照:

  2. アプリケーションで使用するインバウンドおよびアウトバウンドJMSアダプタごとにjms-adapter要素を追加することで、アプリケーションのコンポーネント構成ファイルを更新します。

    例7-5は、例7-4のJMSインバウンド・アダプタのjms-adapter要素を示しています。

    例7-5 インバウンド・アダプタのjms-adapter要素

    <jms-adapter>
        <name>inboundJmsAdapter1</name>
    ...
    </jms-adapter>
    

    jms-adapter要素について、name子要素を、対応するwlevs:adapter要素のid子要素に設定する必要があります。

    参照:

  3. JMSメッセージおよびOracle CEPイベント・タイプの間の変換方法を決定します。

    1. JMSアダプタで自動変換を行う場合は、JMSアダプタ・コンポーネント構成ファイルでjms-adapter要素のevent-type子要素を使用してイベント・タイプを指定します。

      参照:

    2. JMSアダプタでカスタム変換を行う場合は、カスタム・コンバータJavaクラスを作成してEPNアセンブリ・ファイルに登録します。

      7.3項「JMSメッセージとイベント・タイプ間のカスタム・コンバータの作成」を参照してください。

  4. Oracle WebLogic Server JMSプロバイダのjms-adapter要素を構成します。

    例7-6は、JMSインバウンドおよびアウトバウンド・アダプタのjms-adapter要素を示しています。

    例7-6 Oracle WebLogic Server JMSプロバイダのjms-adapter要素

    ...
        <jms-adapter>
            <name>JmsInbound</name>
            <event-type>SimpleMapEvent</event-type>
            <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
            <destination-jndi-name>QueueIn</destination-jndi-name>
            <user>weblogic</user>
            <password>welcome1</password>
            <work-manager>JettyWorkManager</work-manager>
            <concurrent-consumers>1</concurrent-consumers>
            <session-transacted>false</session-transacted>
            <delivery-mode>nonpersistent</delivery-mode>
        </jms-adapter>
    
        <jms-adapter> 
            <name>JmsOutbound</name>
            <event-type>SimpleMapEvent</event-type>
            <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
            <destination-jndi-name>QueueIn</destination-jndi-name>
            <user>weblogic</user>
            <password>welcome1</password>
            <message-selector></message-selector>
            <session-transacted>false</session-transacted>
            <delivery-mode>nonpersistent</delivery-mode>
        </jms-adapter>
    ...
    

    参照:

  5. コンポーネント構成ファイルにJMSプロバイダのクライアント・パスワードを指定する場合は、パスワードの暗号化を検討してください。

    7.4項「JMSアダプタのコンポーネント構成ファイル内のパスワードの暗号化」を参照してください。

  6. Java Objectメッセージを使用している場合は、ライブラリ・バンドルにパッケージ化する必要がある、メッセージングに使用するJavaクラスを含んだJMSクライアント・アプリケーション・ライブラリを作成する必要があります。

    詳細は、24.1.3.3項「アプリケーション・ライブラリの作成」を参照してください。


    注意:

    このJMSクライアントJARアプリケーション・ライブラリは、次の条件を満たす必要があります。
    • メッセージングに使用するJavaクラスをエクスポートします。

    • javax.jmsおよびjavax.namingをインポートします。

    アプリケーション・バンドルは、プロバイダ固有のパッケージをエクスポートする必要はありません。

    アプリケーション・バンドルは、適用可能な場合、メッセージに使用するJavaクラスをインポートする必要があります。


  7. Java Objectメッセージを使用している場合は、メッセージ・アプリケーション・ライブラリのJavaクラスを、該当するOracle CEPサーバー・アプリケーションのディレクトリにコピーします。

    1. バンドルがドライバの場合は、ライブラリ拡張ディレクトリに置く必要があります。

      24.1.3.2項「ライブラリ拡張ディレクトリ」を参照してください。

    2. バンドルがドライバでない場合は、ライブラリ・ディレクトリに置くことができます。

      24.1.3.1「ライブラリ・ディレクトリ」を参照してください。

    詳細は、24.3.4項「Oracle CEP IDE for Eclipseを使用したアプリケーション・ライブラリの更新方法」を参照してください。

  8. ステップ3でカスタム・コンバータ・クラスを作成した場合は、アプリケーションのMANIFEST.MFファイルを更新して、次のパッケージをImport-Packageヘッダーに追加します。

    Import-Package: javax.jms,javax.naming, ...
        ...
    

    4.7.5項「パッケージのインポート方法」を参照してください。

7.2.4 Tibco EMS JMS用にJMSアダプタを手動で構成する方法

Oracle CEPでは、TIBCOエンタープライズ・メッセージ・サービス(EMS)バージョン4.2.0以上をサポートします。

Tibco EMS JMSプロバイダを使用するには、次のTibco EMSクライアントJARファイルをOracle CEPサーバー・ライブラリ・ディレクトリに追加する必要があります。

  • tibjms.jar

詳細については、次を参照してください。

Tibco EMS JMSプロバイダを使用するように、組込みJMSインバウンドおよびアウトバウンド・アダプタを手動で構成できます。

7.2.1項「Oracle CEP IDE for Eclipseを使用したJMSアダプタの構成方法」で説明しているとおり、JMSアダプタを作成および構成する最も簡単な方法はOracle CEP IDE for Eclipseアダプタ・ウィザードを使用することです。このアダプタ・ウィザードを使用して基本JMSアダプタ構成を作成および指定したら、この手順を確認して構成を完了します。

Tibco EMS JMS用にJMSアダプタを手動で構成するには、次の手順を実行します。

  1. アプリケーションのEPNアセンブリ・ファイルで、アプリケーションで使用するインバウンドおよびアウトバウンドJMSアダプタごとにwlevs:adapter要素を追加します。

    例7-7は、JMSインバウンド・アダプタのwlevs:adapter要素を示しています。

    例7-7 インバウンド・アダプタのwlevs:adapter要素

    <wlevs:adapter id="inboundJmsAdapter1" provider="jms-inbound">
    ...
    </wlevs:adapter>
    

    参照:

  2. アプリケーションのコンポーネント構成ファイルで、アプリケーションで使用するインバウンドおよびアウトバウンドJMSアダプタごとにjms-adapter要素を追加します。

    例7-8は、例7-7のJMSインバウンド・アダプタのjms-adapter要素を示しています。

    例7-8 インバウンド・アダプタのjms-adapter要素

    <jms-adapter>
        <name>inboundJmsAdapter1</name>
    ...
    </jms-adapter>
    

    jms-adapter要素について、name子要素を、対応するwlevs:adapter要素のid子要素に設定する必要があります。

    参照:

  3. JMSメッセージおよびOracle CEPイベント・タイプの間の変換方法を決定します。

    1. JMSアダプタで自動変換を行う場合は、JMSアダプタ・コンポーネント構成ファイルでjms-adapter要素のevent-type子要素を使用してイベント・タイプを指定します。

      参照:

    2. JMSアダプタでカスタム変換を行う場合は、カスタム・コンバータJavaクラスを作成してEPNアセンブリ・ファイルに登録します。

      7.3項「JMSメッセージとイベント・タイプ間のカスタム・コンバータの作成」を参照してください。

  4. 例7-9のように、Tibco EMS JMSプロバイダのjms-adapter要素を構成します。

    例7-9 Tibco EMS JMSのjms-adapter要素の構成

    <jms-adapter>
        <name>inboundJmsAdapter1</name>
        ...
        <jndi-provider-url>tcp://TIBCOHOST:PORT</jndi-provider-url>
        <jndi-factory>com.tibco.tibjms.naming.TibjmsInitialContextFactory</jndi-factory>
        <connection-jndi-name>CONNECTION_NAME</connection-jndi-name>
        <destination-jndi-name>DESTINATION_NAME</destination-jndi-name>
        ...
    </jms-adapter>
    

    説明:

    • TIBCOHOST: Tibco EMS JMSプロバイダ・ホストのホスト名。

    • PORT: Tibco EMS JMSプロバイダのポート。

    • DESTINATION_NAME: Tibco EMS JMS送り先の送り先JNDI名(TibcoRequestQueue1など)。

    • CONNECTION_NAME: Tibco EMS JMSサーバーで定義したTibco EMS JMS接続ファクトリの接続JNDI名(TibcoQueueConnectionFactoryなど)。

    参照:

  5. コンポーネント構成ファイルにJMSプロバイダのクライアント・パスワードを指定する場合は、パスワードの暗号化を検討してください。

    7.4項「JMSアダプタのコンポーネント構成ファイル内のパスワードの暗号化」を参照してください。

  6. 以下の項目を含む、JMSクライアント・アプリケーション・ライブラリを作成します。

    • tibjms.jar

    • Java Objectメッセージを使用している場合は、メッセージングに使用するJavaクラスをライブラリ・バンドルにパッケージ化する必要があります。

      これらのJavaクラスは、このJMSクライアント・アプリケーション・ライブラリに入れる場合があります。


    注意:

    JMSクライアント・アプリケーション・ライブラリは、次の条件を満たす必要があります。
    • すべてのプロバイダ固有のパッケージをエクスポートします。

    • (可能な場合)メッセージングに使用するJavaクラスをエクスポートします。

    • javax.jmsおよびjavax.namingをインポートします。

    アプリケーション・バンドルは、プロバイダ固有のパッケージをエクスポートする必要はありません。

    アプリケーション・バンドルは、適用可能な場合、メッセージに使用するJavaクラスをインポートする必要があります。


    詳細は、24.1.3.3項「アプリケーション・ライブラリの作成」を参照してください。

    特定のJMSプロバイダのサンプルについては、7.2.4項「Tibco EMS JMS用にJMSアダプタを手動で構成する方法」を参照してください。

  7. アプリケーション・ライブラリを該当するOracle CEPサーバー・アプリケーション・ライブラリのディレクトリにコピーします。

    1. バンドルがドライバの場合は、ライブラリ拡張ディレクトリに置く必要があります。

      24.1.3.2項「ライブラリ拡張ディレクトリ」を参照してください。

    2. バンドルがドライバでない場合は、ライブラリ・ディレクトリに置くことができます。

      24.1.3.1「ライブラリ・ディレクトリ」を参照してください。

    詳細は、24.3.4項「Oracle CEP IDE for Eclipseを使用したアプリケーション・ライブラリの更新方法」を参照してください。

  8. ステップ3でカスタム・コンバータ・クラスを作成した場合は、アプリケーションのMANIFEST.MFファイルを更新して、次のパッケージをImport-Packageヘッダーに追加します。

    Import-Package: javax.jms,javax.naming, ...
        ...
    

    4.7.5項「パッケージのインポート方法」を参照してください。

7.3 JMSメッセージとイベント・タイプ間のカスタム・コンバータの作成

JMSメッセージとイベント・タイプ間の変換をカスタマイズする場合は、独自のコンバータBeanを作成する必要があります。

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

7.3.1 インバウンドJMSアダプタ用のカスタム・コンバータの作成方法

インバウンドJMSのカスタム・コンバータBeanでは、com.bea.wlevs.adapters.jms.api.InboundMessageConverterインタフェースを実装する必要があります。このインタフェースには次の1つのメソッドが含まれています。

public List convert(Message message) throws MessageConverterException, JMSException;

messageパラメータは着信JMSメッセージに対応します。戻り値は、イベント処理ネットワークの次のステージに渡されるイベントのListです。

これらのAPIの詳細は、Oracle Fusion Middleware Oracle Complex Event Processing Java APIリファレンスを参照してください。

インバウンドJMSアダプタ用のカスタム・コンバータを作成するには、次の手順を実行します。

  1. Oracle CEP IDE for Eclipse (または希望するIDE)を使用して、Javaクラスをアプリケーション・プロジェクトに追加します。

  2. com.bea.wlevs.adapters.jms.api.InboundMessageConverterインタフェースを実装します。

    例7-10は、実装例を示しています。

    例7-10 インバウンドJMSアダプタ用のカスタム・コンバータ

    package com.customer;
    import com.bea.wlevs.adapters.jms.api.InboundMessageConverter;
    import com.bea.wlevs.adapters.jms.api.MessageConverterException;
    import com.bea.wlevs.adapters.jms.api.OutboundMessageConverter;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import java.util.ArrayList;
    import java.util.List;
    public class MessageConverter implements InboundMessageConverter, 
        OutboundMessageConverter {
        public List convert(Message message) throws MessageConverterException, JMSException {
            TestEvent event = new TestEvent();
            TextMessage textMessage = (TextMessage) message;
            event.setString_1(textMessage.getText());
            List events = new ArrayList(1);
            events.add(event);
            return events;
        }
        public List<Message> convert(Session session, Object inputEvent) 
            throws MessageConverterException, JMSException {
            TestEvent event = (TestEvent) inputEvent;
            TextMessage message = session.createTextMessage(
                "Text message: " + event.getString_1()
            );
            List<Message> messages = new ArrayList<Message>();
            messages.add(message);
            return messages;
        }
    }
    
  3. 例7-11に示すように、アプリケーションEPNアセンブリ・ファイルにコンバータを指定します。

    • bean要素を使用して変換クラスを登録します。

    • nameconverterBeanに設定し、refbeanidに設定したwlevs:instance-propertyを追加することで、コンバータ・クラスとJMSアダプタを関連付けます。

    例7-11 EPNアセンブリ・ファイルでのインバウンドJMSアダプタ用のコンバータ・クラスの指定

    ...
        <bean id="myConverter" class="com.customer.MessageConverter"/>
        <wlevs:adapter id="jmsInbound" provider="jms-inbound">
            <wlevs:instance-property name="converterBean" ref="myConverter"/>
            <wlevs:listener ref="mySink"/>
        </wlevs:adapter>
    ...
    
  4. Javaクラスをアプリケーションにパッケージ化します。

    詳細は、第24章「Oracle CEPアプリケーションのアセンブルとデプロイ」を参照してください。

7.3.2 アウトバウンドJMSアダプタ用のカスタム・コンバータの作成方法

アウトバウンドJMSのカスタム・コンバータBeanでは、com.bea.wlevs.adapters.jms.api.OutboundMessageConverterインタフェースを実装する必要があります。このインタフェースには次の1つのメソッドが含まれています。

public List<Message> convert(Session session, Object event) 
    throws MessageConverterException, JMSException;

パラメータはEPNのソース・ノードから送信され、発信JMSアダプタで受信されたイベントに対応します。戻り値は、JMSメッセージのListです。

これらのAPIの詳細は、Oracle Fusion Middleware Oracle Complex Event Processing Java APIリファレンスを参照してください。

アウトバウンドJMSアダプタ用のカスタム・コンバータを作成するには、次の手順を実行します。

  1. Oracle CEP IDE for Eclipse (または希望するIDE)を使用して、Javaクラスをアプリケーション・プロジェクトに追加します。

  2. com.bea.wlevs.adapters.jms.api.OutboundMessageConverterインタフェースを実装します。

    例7-10は、実装例を示しています。

    例7-12 アウトバウンドJMSアダプタ用のカスタム・コンバータ

    package com.customer;
    import com.bea.wlevs.adapters.jms.api.InboundMessageConverter;
    import com.bea.wlevs.adapters.jms.api.MessageConverterException;
    import com.bea.wlevs.adapters.jms.api.OutboundMessageConverter;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import java.util.ArrayList;
    import java.util.List;
    public class MessageConverter implements InboundMessageConverter, 
        OutboundMessageConverter {
        public List convert(Message message) throws MessageConverterException, JMSException {
            TestEvent event = new TestEvent();
            TextMessage textMessage = (TextMessage) message;
            event.setString_1(textMessage.getText());
            List events = new ArrayList(1);
            events.add(event);
            return events;
        }
        public List<Message> convert(Session session, Object inputEvent) 
            throws MessageConverterException, JMSException {
            TestEvent event = (TestEvent) inputEvent;
            TextMessage message = session.createTextMessage(
                "Text message: " + event.getString_1()
            );
            List<Message> messages = new ArrayList<Message>();
            messages.add(message);
            return messages;
        }
    }
    
  3. 例7-11に示すように、アプリケーションEPNアセンブリ・ファイルにコンバータを指定します。

    • bean要素を使用して変換クラスを登録します。

    • nameconverterBeanに設定し、refbeanidに設定したwlevs:instance-propertyを追加することで、コンバータ・クラスとJMSアダプタを関連付けます。

    例7-13 EPNアセンブリ・ファイルでのアウトバウンドJMSアダプタ用のコンバータ・クラスの指定

    ...
        <bean id="myConverter" class="com.customer.MessageConverter"/>
        <wlevs:adapter id="jmsOutbound" provider="jms-outbound">
            <wlevs:instance-property name="converterBean" ref="myConverter"/>
        </wlevs:adapter>
    ...
    
  4. Javaクラスをアプリケーションにパッケージ化します。

    詳細は、第24章「Oracle CEPアプリケーションのアセンブルとデプロイ」を参照してください。

7.4 JMSアダプタ・コンポーネント構成ファイル内のパスワードの暗号化

JMSアダプタ構成ファイル内のパスワードを暗号化できます。


注意:

この手順では、現在コンフィグレーション・ファイルのpassword要素でクリア・テキストのパスワード値を使用していて、パスワードを暗号化するためにencrypted-password要素の使用を開始する必要があると想定しています。

7.4.1 JMSアダプタ・コンポーネント構成ファイル内のパスワードの暗号化方法

JMSアダプタ構成ファイル内のパスワードを暗号化できます。

JMSアダプタ・コンポーネント構成ファイル内のパスワードを暗号化するには、次の手順を実行します。

  1. コマンド・ウィンドウを開き、『Oracle Complex Event Processingスタート・ガイド』の開発環境の設定に関する項の説明に従って、環境を設定します。

  2. JMSアダプタの構成ファイルがあるディレクトリに移動します。

  3. 構成ファイルの<password>要素の値を暗号化するには、次のencryptMSAConfigコマンドを実行します。

    prompt> ORACLE_CEP_HOME/ocep_11.1/bin/encryptMSAConfig . config_file msainternal.dat_file
    

    ORACLE_CEP_HOMEは、d:\oracle_cepなどのOracle CEPをインストールしたメインBEAディレクトリです。2番目の引数は、JMSアダプタ構成ファイルが含まれているディレクトリです。この手順では実際にそのディレクトリに移動するため、例では"."と示されています。config_fileパラメータは、JMSアダプタ構成ファイルの名前です。最後に、msainternal.dat_fileパラメータは、ドメインに関連付けられている.msainternal.datファイルの場所です。デフォルトでは、このファイルはDOMAIN_DIR/servernameディレクトリにあります。DOMAIN_DIRは、/oracle_cep/user_projects/domains/mydomainなどのドメイン・ディレクトリであり、servernameはサーバー・インスタンスです。

    encryptMSAConfigコマンドには、encryptMSAConfig.cmd (Windows)およびencryptMSAConfig.sh (UNIX)の2種類があります。

    コマンドを実行した後、次の例の太字部分のように、<password>要素の値が暗号化されます。

    <jms-adapter>
      <name>jmsInbound</name>
      <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
      <destination-jndi-name>Queue1</destination-jndi-name>
      <user>weblogic</user>
      <password>{Salted-3DES}B7L6nehu7dgPtJJTnTJWRA==</password>
      <work-manager>JettyWorkManager</work-manager>
      <concurrent-consumers>1</concurrent-consumers>
      <session-transacted>false</session-transacted>
    </jms-adapter>
    
  4. 任意のXMLエディタを使用して、JMSアダプタ構成ファイルを編集します。次の例の太字部分のように、(値が現在暗号化されている)<password>要素を<encrypted-password>に変更します。

    <jms-adapter>
      <name>jmsInbound</name>
      <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
      <destination-jndi-name>Queue1</destination-jndi-name>
      <user>weblogic</user>
      <encrypted-password>{Salted-3DES}B7L6nehu7dgPtJJTnTJWRA==</encrypted-password>
      <work-manager>JettyWorkManager</work-manager>
      <concurrent-consumers>1</concurrent-consumers>
      <session-transacted>false</session-transacted>
    </jms-adapter>
    

7.5 JMSアダプタのEPNアセンブリ・ファイルの構成

イベント処理ネットワークのJMSアダプタごとに、対応するwlevs:adapter要素をアプリケーションのEPNアセンブリ・ファイルに追加する必要があります。provider属性を使用して、JMSアダプタがインバウンドまたはアウトバウンドのどちらであるかを指定します。

EPNの他のステージと同様に、wlevs:adapter要素にリスナーを追加してJMSアダプタをイベント処理ネットワークに統合します。通常、インバウンドJMSアダプタは(メッセージを受信するため)EPNの最初のステージであり、アウトバウンドJMSアダプタは(メッセージを送信するため)より後方のステージです。ただし、JMSアダプタがネットワーク内に配置される場所は、独自のOracle CEPアプリケーションの要件に応じて定義されます。

JMSのインバウンドおよびアウトバウンドの両方のアダプタで、JMSメッセージとイベント・タイプの間の変換をカスタマイズするカスタム・コンバータBeanを作成した場合は、まず標準のbean Spring要素を使用して、EPNアセンブリ・ファイル内でこれを宣言します。その後、次のように、wlevs:instance-property要素でidを指定することでBeanの参照をJMSアダプタに渡し、name属性にconverterBeanを設定します。

<bean id="myConverter"
      class="com.customer.MessageConverter"/>

<wlevs:adapter id="jmsOutbound" provider="jms-outbound">  
    <wlevs:instance-property name="converterBean" ref="myConverter"/>
</wlevs:adapter>

この場合は、コンポーネント構成ファイルにイベント・タイプを指定しないでください。これは、カスタム・コンバータBeanでイベント・タイプが指定されることが想定されるためです。

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

詳細については、次を参照してください。

7.5.1 JMSインバウンド・アダプタのEPNアセンブリ・ファイルの構成

インバウンドJMSアダプタを指定する場合は、次のようにprovider属性をjms-inboundに設定します。

<wlevs:adapter id="jmsInbound" provider="jms-inbound"/>

id属性の値(この場合はjmsInbound)は、構成ファイルのこのJMSアダプタに指定した名前と一致している必要があります。構成ファイルでは、このインバウンドJMSアダプタがメッセージを取得するJMS送り先を構成します。

コンバータBeanが指定されていないため、Oracle CEPではプロパティ名のマップによって、着信メッセージがコンポーネント構成ファイルで指定されているイベント・タイプに自動的に変換されます。

次のEPNアセンブリ・ファイルの例は、インバウンドJMSアダプタの構成方法を示しています。ネットワークは単純です。インバウンドJMSアダプタjmsInboundはコンポーネント構成ファイルで構成されているJMS送り先からメッセージを受信します。Spring bean myConverterによって着信JMSメッセージがイベント・タイプに変換され、これらのイベントはmySinkイベントBeanに渡されます。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:osgi="http://www.springframework.org/schema/osgi"
       xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
       xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/osgi
  http://www.springframework.org/schema/osgi/spring-osgi.xsd
  http://www.bea.com/ns/wlevs/spring
  http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_3.xsd">
    <wlevs:event-type-repository>
        <wlevs:event-type type-name="JMSEvent">
            <wlevs:class>com.customer.JMSEvent</wlevs:class>
        </wlevs:event-type>
    </wlevs:event-type-repository>
    <!-- Event bean that is an event sink -->
    <wlevs:event-bean id="mySink" 
                      class="com.customer.MySink"/>
    <!-- Inbound JMS adapter with custom converter class; adapter sends events to mySink event bean-->
   <bean id="myConverter" class="com.customer.MessageConverter"/>
   <wlevs:adapter id="jmsInbound" provider="jms-inbound">
       <wlevs:instance-property name="converterBean" ref="myConverter"/>
       <wlevs:listener ref="mySink"/>
    </wlevs:adapter>
</beans>

7.5.2 JMSアウトバウンド・アダプタのEPNアセンブリ・ファイルの構成

アウトバウンドJMSアダプタを指定する場合は、次のようにprovider属性をjms-outboundに設定します。

<wlevs:adapter id="jmsOutbound" provider="jms-outbound"/>

id属性の値(この場合はjmsOutbound)は、構成ファイルのこのJMSアダプタに指定した名前と一致している必要があります。構成ファイルでは、このアウトバウンドJMSアダプタがメッセージを送信するJMS送り先を構成します。

コンバータBeanが指定されていないため、Oracle CEPではプロパティ名のマップによって、着信イベント・タイプが発信JMSメッセージに自動的に変換されます。

次のEPNアセンブリ・ファイルの例は、アウトバウンドJMSアダプタの構成方法を示しています。ネットワークは単純です。カスタム・アダプタgetDataがフィードから受信したデータはイベント・タイプに変換されてmyProcessorに渡されます。イベントはstreamOneチャネルを通じてjmsOutboundJMSアダプタに送信されます。Oracle CEPではこれらのイベントが自動的にJMSメッセージに変換され、メッセージは、jmsOutboundアダプタに関連付けられているコンポーネント構成ファイルで構成されているJMS送り先に送信されます。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:osgi="http://www.springframework.org/schema/osgi"
       xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
       xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/osgi
  http://www.springframework.org/schema/osgi/spring-osgi.xsd
  http://www.bea.com/ns/wlevs/spring
  http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_3.xsd">
    <wlevs:event-type-repository>
        <wlevs:event-type type-name="JMSEvent">
            <wlevs:class>com.customer.JMSEvent</wlevs:class>
        </wlevs:event-type>
    </wlevs:event-type-repository>
    <!-- Custom adapter that gets data from somewhere and sends it to myProcessor -->
    <wlevs:adapter id="getData" 
                   class="com.customer.GetData">
        <wlevs:listener ref="myProcessor"/>
    </wlevs:adapter>
    <wlevs:processor id="myProcessor" />
    <wlevs:adapter id="jmsOutbound" provider="jms-outbound"/>
     <!-- Channel for events flowing from myProcessor to outbound JMS adapter -->
    <wlevs:channel id="streamOne">
       <wlevs:listener ref="jmsOutbound"/>
       <wlevs:source ref="myProcessor"/>
    </wlevs:channel>
</beans>

7.6 JMSアダプタのコンポーネント構成ファイルの構成

JMSアダプタの構成は、プロセッサやストリームなどのイベント処理ネットワークの他のコンポーネントを構成する場合と同様に、それぞれの構成ファイルで行います。

JMSアダプタを構成する場合のルート要素はjms-adapterです。特定のアダプタのname子要素は、このアダプタが宣言されているEPNアセンブリ・ファイル内の対応するwlevs:adapter要素のid属性と一致している必要があります。

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

詳細については、次を参照してください。

7.6.1 JMSインバウンド・アダプタ・コンポーネントの構成

表7-1には、JMSインバウンド・アダプタに適用できる、jms-adapter 要素の子要素がリストされます。

表7-1 jms-adapterインバウンド子要素

子要素 説明

bindings

バインドは水平的なスケールアウトを構成する場合に使用する高度な機能です。com.oracle.cep.cluster.hagroups.ActiveActiveGroupBeanを使用して、ActiveActiveGroupBeanで作成された通知グループによって、Oracle CEPアプリケーションの受信JMSストリームをパーティション化できます。この要素を使用して、通知グループと特定のmessage-selector値を関連付けます。

詳細は、22.2.2項「ActiveActiveGroupBean」を参照してください。

concurrent-consumers

作成するコンシューマ数。デフォルト値は1です。

この値に1より大きい数を設定した場合:

connection-jndi-name

オプション。JMS接続ファクトリのJNDI名。Oracle CEPサーバーJMSの場合、デフォルト値はweblogic.jms.ConnectionFactoryです。

connection-password

connection-encrypted-password

オプション。connection-userのパスワード(または暗号化されたパスワード)。

注意: connection-passwordまたはconnection-encrypted-passwordの両方ではなく、どちらか1つを指定します。

パスワードの暗号化の詳細は、7.4項「JMSアダプタ・コンポーネント構成ファイルでのパスワードの暗号化」を参照してください。

connection-user

オプション。Oracle CEPが、JMS宛先(JMSキューまたはトピック)への接続を作成するためにjavax.jms.ConnectionFactory上でcreateConnectionメソッドを呼び出すとき、構成されている場合は、connection-userおよびconnection-password (またはconnection-encrypted-password)設定を使用します。それ以外の場合は、Oracle CEPはuserおよびpassword(またはencrypted-password)設定を使用します。

アプリケーションでconnection-userおよびconnection-password(またはconnection-encrypted-password)の設定を使用できます。その場合、一方のセキュリティ・プロバイダはJNDIアクセスに使用され、JMSアクセスには別のセキュリティ・プロバイダが使用されます。

destination-jndi-name

必須。JMS送り先のJNDI名。

注意: destination-jndi-nameまたはdestination-nameの両方ではなく、どちらか1つを指定します。

destination-name

必須。JMS送り先の実際の名前。

注意: destination-jndi-nameまたはdestination-nameの両方ではなく、どちらか1つを指定します。

event-type

プロパティ名がインバウンドJMSマップ・メッセージ・プロパティ名と一致するイベント・タイプ。このプロパティは、Oracle CEPでJMSメッセージとイベント間の変換を自動的に実行する場合にのみ指定します。独自のコンバータBeanを作成した場合は、このプロパティを指定しないでください。

詳細は、7.3項「JMSメッセージとイベント・タイプ間のカスタム・コンバータの作成」を参照してください。

jndi-factory

オプション。JNDIファクトリ名。Oracle CEPサーバーJMSの場合、デフォルト値はweblogic.jndi.WLInitialContextFactoryです。

jndi-provider-url

必須。JNDIプロバイダのURL。

message-selector

メッセージのフィルタ処理に使用されるJMSメッセージ・セレクタ。セレクタと一致するメッセージだけがイベントを生成します。

デフォルト: セレクタなしです。すべてのメッセージがイベントを生成します。

password

encrypted-password

必須。userのパスワード(または暗号化されたパスワード)。

注意: passwordまたはencrypted-passwordの両方ではなく、どちらか1つを指定します。

パスワードの暗号化の詳細は、7.4項「JMSアダプタ・コンポーネント構成ファイルでのパスワードの暗号化」を参照してください。

session-ack-mode-name

メッセージの確認方法を決定します。メッセージが一度正常に確認されると、失敗の後でも再送信されません。

javax.jms.Sessionからの有効な値。

  • AUTO_ACKNOWLEDGE: この確認モードを使用するとセッションが受信コールから正常に戻された場合か、またはセッションがメッセージ処理のためにコールしたメッセージ・リスナーが正常に戻る場合のいずれでもセッションは自動的にクライアントがメッセージを受信したことを確認します。

  • CLIENT_ACKNOWLEDG: この確認モードを使用するとメッセージの確認メソッドをコールすることによって、クライアントは消費されたメッセージを確認します。

  • DUPS_OK_ACKNOWLEDGE: この確認モードはセッションにメッセージ送信の確認を遅延するように命令します。

デフォルト: AUTO_ACKNOWLEDGE

session-transacted

セッションがトランザクションであるかとうかを指定するブール値。

セッションがトランザクションである場合は、session-ack-mode-nameを指定しないでください。

デフォルト: False

user

必須。Oracle CEPがJNDI InitialContextを取得する際、ユーザーおよびpassword (またはencrypted-password)設定が使用されます。

work-manager

Oracle CEPサーバーのconfig.xmlファイルで構成されているワーク・マネージャの名前。この名前は、config.xml内のwork-manager要素のname子要素の値に対応します。

concurrent-consumersが1より大きく、すべてのコンシューマの同時実行を希望する場合は、このJMSインバウンド・アダプタと関連付けるwork-managerの構成を検討してください。

  • work-managerが他のコンポーネント(その他のアダプタおよびJetty)と共有されている場合、work-manager属性max-threads-constraintconcurrent-consumersの設定以上に設定します。

  • work-managerが共有されていない場合(つまり、この受信JMSアダプタ専用の場合)、work-manager属性max-threads-constraintconcurrent-consumersと同じ設定にします。

デフォルト値は、アプリケーション自身に構成されているワーク・マネージャです。

詳細は、 F.44項「work-manager」を参照してください。


次の構成ファイルは、インバウンドJMSアダプタを構成する場合の完全な例を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<n1:config
 xsi:schemaLocation="http://www.bea.com/ns/wlevs/config/application wlevs_application_config.xsd"
 xmlns:n1="http://www.bea.com/ns/wlevs/config/application"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <jms-adapter>
        <name>jmsInbound</name>
        <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
        <destination-jndi-name>Queue1</destination-jndi-name>
        <user>weblogic</user>
        <password>weblogic</password>
        <work-manager>MyWorkManager</work-manager>
        <concurrent-consumers>1</concurrent-consumers>
        <session-transacted>false</session-transacted>
    </jms-adapter>
    <jms-adapter>
        <name>jmsOutbound</name>
        <event-type>JMSEvent</event-type>
        <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
        <destination-jndi-name>Topic1</destination-jndi-name>
        <delivery-mode>nonpersistent</delivery-mode>
    </jms-adapter>
</n1:config>

7.6.2 JMSアウトバウンド・アダプタ・コンポーネントの構成

表7-2には、JMSアウトバウンド・アダプタに適用できる、jms-adapter 要素の子要素がリストされます。

表7-2 jms-adapterアウトバウンド・コンポーネント構成の子要素

子要素 説明

connection-jndi-name

オプション。JMS接続ファクトリのJNDI名。Oracle CEPサーバーJMSの場合、デフォルト値はweblogic.jms.ConnectionFactoryです。

connection-password

connection-encrypted-password

オプション。connection-userのパスワード(または暗号化されたパスワード)。

注意: connection-passwordまたはconnection-encrypted-passwordの両方ではなく、どちらか1つを指定します。

パスワードの暗号化の詳細は、7.4項「JMSアダプタ・コンポーネント構成ファイルでのパスワードの暗号化」を参照してください。

connection-user

オプション。Oracle CEPが、JMS宛先(JMSキューまたはトピック)への接続を作成するためにjavax.jms.ConnectionFactory上でcreateConnectionメソッドを呼び出すとき、構成されている場合は、connection-userおよびconnection-password (またはconnection-encrypted-password)設定を使用します。それ以外の場合は、Oracle CEPはuserおよびpassword(またはencrypted-password)設定を使用します。

アプリケーションでconnection-userおよびconnection-password(またはconnection-encrypted-password)の設定を使用できます。その場合、一方のセキュリティ・プロバイダはJNDIアクセスに使用され、JMSアクセスには別のセキュリティ・プロバイダが使用されます。

delivery-mode

配信モードをpersistent(デフォルト値)またはnonpersistentで指定します。

destination-jndi-name

必須。JMS送り先のJNDI名。

注意: destination-jndi-nameまたはdestination-nameの両方ではなく、どちらか1つを指定します。

destination-name

必須。JMS送り先の実際の名前。

注意: destination-jndi-nameまたはdestination-nameの両方ではなく、どちらか1つを指定します。

event-type

プロパティ名がインバウンドJMSマップ・メッセージ・プロパティ名と一致するイベント・タイプ。このプロパティは、Oracle CEPでJMSメッセージとイベント間の変換を自動的に実行する場合にのみ指定します。独自のコンバータBeanを作成した場合は、このプロパティを指定しないでください。

詳細は、7.3項「JMSメッセージとイベント・タイプ間のカスタム・コンバータの作成」を参照してください。

jndi-factory

オプション。JNDIファクトリ名。Oracle CEPサーバーJMSの場合、デフォルト値はweblogic.jndi.WLInitialContextFactoryです。

jndi-provider-url

必須。JNDIプロバイダのURL。

password

encrypted-password

必須。userのパスワード(または暗号化されたパスワード)。

注意: passwordまたはencrypted-passwordの両方ではなく、どちらか1つを指定します。

パスワードの暗号化の詳細は、7.4項「JMSアダプタ・コンポーネント構成ファイルでのパスワードの暗号化」を参照してください。

session-transacted

セッションがトランザクションであるかとうかを指定するブール値。

セッションがトランザクションである場合は、session-ack-mode-nameを指定しないでください。

デフォルト: False

user

必須。Oracle CEPがJNDI InitialContextを取得する際、ユーザーおよびpassword (またはencrypted-password)設定が使用されます。


次の構成ファイルは、アウトバウンドJMSアダプタを構成する場合の完全な例を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<n1:config
 xsi:schemaLocation="http://www.bea.com/ns/wlevs/config/application wlevs_application_config.xsd"
 xmlns:n1="http://www.bea.com/ns/wlevs/config/application"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <jms-adapter>
        <name>jmsInbound</name>
        <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
        <destination-jndi-name>Queue1</destination-jndi-name>
        <user>weblogic</user>
        <password>weblogic</password>
        <work-manager>JettyWorkManager</work-manager>
        <concurrent-consumers>1</concurrent-consumers>
        <session-transacted>false</session-transacted>
    </jms-adapter>
    <jms-adapter>
        <name>jmsOutbound</name>
        <event-type>JMSEvent</event-type>
        <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
        <destination-jndi-name>Topic1</destination-jndi-name>
        <delivery-mode>nonpersistent</delivery-mode>
    </jms-adapter>
</n1:config>