创建一个短命的JMSProducer

时间:2014-12-29 04:13:49

标签: spring activemq spring-jms

我正在使用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>

我需要创建一个生产者,它会发送一条消息,然后自行停止,然后再创建新连接并发送消息。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

如果您想要所有生产者和消费者的这种行为,我认为您可以通过使用非池连接工厂来获取它,因为每条新消息都会导致新连接创建,使用,然后拆除。如果您只想要其中一些行为,请创建两个连接工厂(一个池化,一个池化)和两个JMS模板(一个使用池化连接工厂,一个不使用),并让客户端使用适当的JMS模板。

你的表现可能会很糟糕,但这应该没问题,因为这听起来像这是一个学术/深奥的问题(即#34;我只是想知道我是否能想办法做到这一点,即使我没有实际的理由我必须拥有它而不是现实世界的原因。

相关问题