【发布时间】:2015-01-08 00:49:44
【问题描述】:
我正在使用 ActiveMQ5.10 和 spring,
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="failover:(tcp://localhost:61616?wireFormat.maxInactivityDuration=120000)" />
</bean>
<bean id="jmsConnectionFactory"
class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref local="jmsConnectionFactory" />
</property>
<property name="pubSubDomain" value="false" />
<property name="deliveryMode" value="2" /> <!-- 2 implies persistent -->
<property name="sessionTransacted" value="false" />
<property name="timeToLive" value="3600000" />
<property name="explicitQosEnabled" value="true" />
</bean>
我需要创建一个生产者,它将发送一条消息,然后自行停止,然后创建新连接并再次发送消息。
有没有办法做到这一点?
【问题讨论】:
-
用例是什么?生产者发送一条消息,因此它根本不需要“停止”。只需使用
JmsTemplate发送您的信息,除非我误解了问题,否则您会没事的。 -
用例是生产者发送消息,然后它应该关闭与 ActiveMQ 代理的连接,1 分钟后(可配置),再次创建连接发送消息并重复此循环。
-
我还是不明白这个问题。只需使用
JmsTemplate发送您的信息。你试过了吗? -
(我试过了)。我可以使用 jmstemplate 发送,但之后如何关闭此连接,因为我没有明确创建任何连接。
-
好吧,您使用的是
PooledConnectionFactory,因此它可能会在一段时间内保留与代理的实际连接,但JmsTemplate的全部意义在于它会正确地为您关闭事物。这个帖子到底是什么?你注意到一个问题了吗?如果是这样,你为什么不在你的帖子中分享它?
标签: spring activemq spring-jms