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

前
 
次
 

11 Java Message Serviceの統合

この章では、JMSアダプタを使用して、JMSメッセージを送受信するOracle Event Processingイベント処理ネットワークにJava Message Serviceを接続する方法について説明します。

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

11.1 JMSアダプタ構成の概要

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

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

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

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

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

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

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

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

11.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>
...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11.1.2.3 恒久サブスクリプション用のJMSアダプタの構成

JMSトピックへの恒久サブスクリプション内のクライアントになるように、インバウンドJMSアダプタを構成できます。恒久サブスクリプションでは、アダプタが非アクティブになった場合も、アダプタはパブリッシュされたメッセージを受信することが保証されます。インバウンド・アダプタがJMSサーバーに接続すると、恒久サブスクリプションが登録されます。それ以降にトピックに送信されるメッセージは、サブスクライバが切断されている間も保持され(期限切れではない場合)、再接続すると配信されます。

恒久サブスクリプションは、JMSメッセージをトピックにパブリッシュしているパブリッシャが永続配信モードを使用していることを前提とします。パブリッシャはOracle Event ProcessingのアウトバウンドJMSアダプタである(つまりdelivery-modeの値は、デフォルト値のpersistentである必要がある)ことに注意してください。

アダプタに恒久サブスクリプションを作成するには、次を実行します。

  • JMSメッセージ・パブリッシャが永続モードでメッセージを配信していることを確認します。

  • 接続ファクトリのクライアントIDを指定します。Oracle WebLogic Serverで、管理上、コンソールを使用して接続ファクトリにクライアントIDを設定できます。これは、恒久サブスクライバを使用している各アダプタ・インスタンスに構成された専用の接続ファクトリがあることを意味していることに注意してください。

  • jms-adapterの次の3つのプロパティを設定します。

    • destination-typeTOPICに設定する必要があります。

    • durable-subscriptiontrueに設定する必要があります。

    • durable-subscription-nameは、サブスクリプション用に一意の識別子に設定します。

これらのプロパティの詳細は、11.6.1項「JMSインバウンド・アダプタのコンポーネント構成」を参照してください。

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

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

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

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

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

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

  • デフォルトでは、アウトバウンド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>
...

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

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

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

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

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

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

11.2.1 Oracle Event Processing IDE for Eclipseを使用したJMSアダプタの構成方法

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

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

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

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

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

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

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

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

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

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

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

    参照:

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

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

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

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

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

    参照:

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

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

      参照:

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

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

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

    例11-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 Event Processing JMSアダプタがサポートするすべてのオプションについては、以下を参照してください。

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

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

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

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

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

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

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

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


    注意:

    このJMSクライアントJARアプリケーション・ライブラリは、次の条件を満たす必要があります。

    • すべてのプロバイダ固有のパッケージをエクスポートします。

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Oracle WebLogicサーバーへの接続とき、Oracle Event ProcessingではデフォルトでT3クライアントが使用されます。

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

実行中のOracle Event ProcessingサーバーでT3とIIOPを混合して使用できません。

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

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

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

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

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

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

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

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

    参照:

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

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

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

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

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

    参照:

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

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

      参照:

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

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

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

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

    例11-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プロバイダのクライアント・パスワードを指定する場合は、パスワードの暗号化を検討してください。

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

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

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


    注意:

    このJMSクライアントJARアプリケーション・ライブラリは、次の条件を満たす必要があります。

    • メッセージングに使用するJavaクラスをエクスポートします。

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

  • tibjms.jar

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

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

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

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

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

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

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

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

    参照:

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

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

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

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

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

    参照:

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

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

      参照:

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

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

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

    例11-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プロバイダのクライアント・パスワードを指定する場合は、パスワードの暗号化を検討してください。

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

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

    • tibjms.jar

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

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


    注意:

    JMSクライアント・アプリケーション・ライブラリは、次の条件を満たす必要があります。

    • すべてのプロバイダ固有のパッケージをエクスポートします。

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    例11-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. 例11-11に示すように、アプリケーションEPNアセンブリ・ファイルにコンバータを指定します。

    • bean要素を使用してコンバータ・クラスを登録します。

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

    例11-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クラスをアプリケーションにパッケージ化します。

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

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

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

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

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

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

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

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

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

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

    例11-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. 例11-11に示すように、アプリケーションEPNアセンブリ・ファイルにコンバータを指定します。

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

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

    例11-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クラスをアプリケーションにパッケージ化します。

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

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

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


注意:

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


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

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

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

  1. コマンド・ウィンドウを開き、3.2項「開発環境の設定」の説明に従って、環境を設定します。

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

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

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

    ORACLE_CEP_HOMEは、d:\oracle_cepなどのOracle Event ProcessingをインストールしたメインBEAディレクトリです。2番目の引数は、JMSアダプタ構成ファイルが含まれているディレクトリです。この手順では実際にそのディレクトリに移動するため、例では"."と示されています。config_fileパラメータは、JMSアダプタ構成ファイルの名前です。最後に、aesinternal.dat_fileパラメータは、ドメインに関連付けられている.aesinternal.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>
    

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

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

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

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でイベント・タイプが指定されることが想定されるためです。

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

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

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

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

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

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

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

次の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_6.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>

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

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

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

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

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

次のEPNアセンブリ・ファイルの例は、アウトバウンドJMSアダプタの構成方法を示しています。ネットワークは単純です。カスタム・アダプタgetDataがフィードから受信したデータはイベント・タイプに変換されてmyProcessorに渡されます。イベントはstreamOneチャネルを通じてjmsOutboundJMSアダプタに送信されます。Oracle Event Processingではこれらのイベントが自動的に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_6.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>

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

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

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

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

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

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

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

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

子要素 説明

bindings

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

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

concurrent-consumers

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

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

connection-jndi-name

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

connection-password

connection-encrypted-password

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

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

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

connection-user

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

destination-type

JMSアダプタのJMS宛先タイプを定義します。有効な値はTOPICまたはQUEUEです。durable-subscriptionプロパティがtrueに設定されている場合は常に、このプロパティをTOPICに設定する必要があります。

注意: 恒久サブスクリプションをサポートするには、これをTOPICに設定し、durable-subscriptionをtrueに設定して、これを使用します。サブスクリプションにdurable-subscription-nameの一意の識別子を指定します。

durable-subscription

JMSアダプタのJMSトピック・サブスクリプションが恒久的であるかどうか、つまりサブスクライバが非アクティブになった場合も永続化できるかどうかを指定します。有効な値は、trueまたはfalseです。このプロパティは、destination-typeTOPICに設定されている場合にのみ有効です。

注意: 恒久サブスクリプションをサポートするには、destination-typeTOPICに設定し、durable-subscription-nameを一意の識別子に設定して、これを使用します。

durable-subscription-name

JMSアダプタの恒久サブスクリプションを一意に識別するための名前。恒久サブスクリプションは、サブスクライバが非アクティブになった場合も永続化できます。

注意: 恒久サブスクリプションをサポートするには、durable-subscriptionをtrueに設定し、destination-typeTOPICに設定して、これを使用します。

event-type

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

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

jndi-factory

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

jndi-provider-url

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

message-selector

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

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

password

encrypted-password

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

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

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

session-ack-mode-name

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

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

  • AUTO_ACKNOWLEDGE: この確認モードを使用して、メッセージを正常に受信した場合にセッションが自動的にクライアントによるメッセージの受信を確認応答します。ダウンストリーム・メッセージ処理中に障害に応じてメッセージを再送信する必要があるアプリケーションでは、session-transactedプロパティを使用して、これを実行する必要があります。

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

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

デフォルト: AUTO_ACKNOWLEDGE

session-transacted

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

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

デフォルト: False

user

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

work-manager

Oracle Event Processingサーバーの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.45項「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>

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

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

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

子要素 説明

connection-jndi-name

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

connection-password

connection-encrypted-password

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

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

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

connection-user

オプション。Oracle Event Processingが、JMS宛先(JMSキューまたはトピック)への接続を作成するためにjavax.jms.ConnectionFactory上でcreateConnectionメソッドを呼び出すとき、構成されている場合は、connection-userおよびconnection-password (またはconnection-encrypted-password)設定を使用します。それ以外の場合は、Oracle Event Processingは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 Event ProcessingでJMSメッセージとイベント間の変換を自動的に実行する場合にのみ指定します。独自のコンバータBeanを作成した場合は、このプロパティを指定しないでください。

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

jndi-factory

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

jndi-provider-url

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

password

encrypted-password

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

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

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

session-transacted

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

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

デフォルト: False

user

必須。Oracle Event Processingが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>