我正在使用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>
我需要创建一个生产者,它会发送一条消息,然后自行停止,然后再创建新连接并发送消息。
有没有办法实现这个目标?
答案 0 :(得分:2)
如果您想要所有生产者和消费者的这种行为,我认为您可以通过使用非池连接工厂来获取它,因为每条新消息都会导致新连接创建,使用,然后拆除。如果您只想要其中一些行为,请创建两个连接工厂(一个池化,一个池化)和两个JMS模板(一个使用池化连接工厂,一个不使用),并让客户端使用适当的JMS模板。
你的表现可能会很糟糕,但这应该没问题,因为这听起来像这是一个学术/深奥的问题(即#34;我只是想知道我是否能想办法做到这一点,即使我没有实际的理由我必须拥有它而不是现实世界的原因。