ActiveMQ ブローカーに接続する複数のプロデューサーに対して JMSTemplate の単一インスタンスを共有したいと考えています。サンプル構成:
<bean id="ProducerJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="gloProducerJmsFactory" />
</property>
</bean>
<bean id="pnlMessageProducer1" class="glo.business.core.FAGSCompletionMessage1"
p:jmsTemplate-ref="ProducerJmsTemplate"
p:messageDestination-ref="topic_loadGearTb1"
</bean>
<bean id="pnlMessageProducer2" class="glo.business.core.FAGSCompletionMessage2"
p:jmsTemplate-ref="ProducerJmsTemplate"
p:messageDestination-ref="topic_loadGearTb2"
</bean>
上記の構成を使用できますか?
ここで述べたように:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html
JmsTemplate クラスのインスタンスは、一度構成するとスレッドセーフになります。これは、JmsTemplate の単一のインスタンスを構成してから、この共有参照を複数の共同作業者に安全に挿入できることを意味するため、重要です。明確にするために、 JmsTemplate は ConnectionFactory への参照を維持するという点でステートフルですが、この状態は会話状態ではありません。
ありがとう、
アヌジ