Menu Close

14.5.4. JMS プロバイダーの設定

概要

JMS プロバイダーエンドポイントには設定可能な動作が多数あります。これらには以下が含まれます。

  • メッセージを相関する方法
  • 永続サブスクリプションの使用
  • サービスがローカルの JMS トランザクションを使用する場合
  • エンドポイントによって使用されるメッセージセレクター

設定の指定

プロバイダーエンドポイントの動作は、オプションの jms:server 要素を使用して設定されます。jms:server 要素は WSDL wsdl:port 要素の子で、以下の属性があります。

表14.4 JMS プロバイダーエンドポイント WSDL エクステンション

属性説明

useMessageIDAsCorrealationID

JMS がメッセージ ID を使用してメッセージを関連付けるかどうかを指定します。デフォルトは false です。

durableSubscriberName

永続サブスクリプションの登録に使用する名前を指定します。

messageSelector

使用するメッセージセレクターの文字列値を指定します。メッセージセレクターを指定するために使用される構文の詳細は、JMS 1.1 仕様を参照してください。

transactional

ローカル JMS ブローカーがメッセージ処理にトランザクションを作成するかどうかを指定します。デフォルトは false です。[a]

[a] 現在、transactional 属性を true に設定することは、ランタイムによってサポートされません。

例14.8「JMS プロバイダーエンドポイントの WSDL」 は、JMS プロバイダーエンドポイントを設定するための WSDL を示しています。

例14.8 JMS プロバイダーエンドポイントの WSDL

<service name="JMSService">
  <port binding="tns:Greeter_SOAPBinding" name="SoapPort">
    <jms:address jndiConnectionFactoryName="ConnectionFactory"
                 jndiDestinationName="dynamicQueues/test.Celtix.jmstransport" >
      <jms:JMSNamingProperty name="java.naming.factory.initial"
                             value="org.activemq.jndi.ActiveMQInitialContextFactory" />
      <jms:JMSNamingProperty name="java.naming.provider.url"
                             value="tcp://localhost:61616" />
    </jms:address>
    <jms:server messageSelector="cxf_message_selector"
                useMessageIDAsCorrelationID="true"
                transactional="true"
                durableSubscriberName="cxf_subscriber" />
  </port>
</service>