JMS と Spring Framework

Spring Framework アプリケーションは、JMSTemplate クラスを使用して JMS メッセージを送信したり、同期 JMS メッセージを受信したりできます。

JMSTemplate は、アプリケーション・リソース参照で構成されている Java™ Naming and Directory Interface (JNDI) 名から、その JMS 宛先を特定できます。

あるいは、Spring Framework バージョン 2.5 以降の場合は、JMSTemplate は動的解決によって JMS 宛先を特定できます。動的解決では、WebSphere® Application Server で構成されている宛先の管理名が検索されます。

JMS リソースが正しく管理されるようにするには、JndiObjectFactoryBean を ConnectionFactory のプロキシーとして使用します。以下に例を示します。
<bean id="jmsConnectionFactory"
   class="org.springframework.jndi.JndiObjectFactoryBean">
      <property name="jndiName" value="java:comp/env/jms/myCF"/>
      <property name="lookupOnStartup" value="false"/>
      <property name="cache" value="true"/>
      <property name="proxyInterface" value="javax.jms.ConnectionFactory"/>
</bean>
以下の例は、ConnectionFactory のリソース参照の構成を示しています。このリソース参照は、アプリケーションのデプロイメント時に、アプリケーション・サーバーの JNDI 名前空間に保管されている構成済みの管理対象接続ファクトリーにマップされます。ConnectionFactory はメッセージングの実行に必要です。ConnectionFactory は Spring JMSTemplate オブジェクトに注入する必要があります。
<resource-ref>
  <res-ref-name>jms/myCF</res-ref-name>
  <res-type>javax.jms.ConnectionFactory</res-type>
  <res-auth>Container</res-auth>
  <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
アプリケーションに ConnectionFactory の定義済み JNDI 名を含めると、その JNDI 名を検索して、JMSTemplate に注入することができます。以下に例を示します。
<jee:jndi-lookup id="jmsConnectionFactory" jndi-name=" jms/myCF "/>

<bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
  <property name="connectionFactory">
    <ref bean="jmsConnectionFactory"/>
  </property>
  <property name="destinationResolver">
    <ref bean="jmsDestResolver"/>
  </property>

  ...
	</bean>

<!-- A dynamic resolver --> 
<bean id="jmsDestResolver"
  class=" org.springframework.jms.support.destination.DynamicDestinationResolver"/>

<!-- A JNDI resolver -->  
<bean id="jmsDestResolver"
  class=" org.springframework.jms.support.destination.JndiDestinationResolver"/>

JMSTemplate オブジェクトは、実行時に、アプリケーション・リソース参照内に構成されたその JNDI 名に基づいて宛先を特定することができます。 あるいは、JMSTemplate オブジェクトは、WebSphere Application Server に構成されている宛先の管理名に基づいて、動的解決を使用して宛先を特定することができます。

以下の例は、jms/myQueue の JNDI 参照にバインドされている JMS キュー myQueue を JNDI 解決を使用して特定する方法を示しています。
jmsTemplate.send("java:comp/env/jms/myQueue", messageCreator);
以下の例は、jms/myQueue の JNDI 参照にバインドされている JMS キュー myQueue を、動的解決を使用して特定する方法を示しています。
jmsTemplate.send("myQueue", messageCreator);

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cspr_data_access_jms
ファイル名:cspr_data_access_jms.html