处理activemq-spring连接错误

时间:2012-07-05 15:54:19

标签: spring activemq spring-jms

我已经配置(使用spring)我的应用程序用activemq监听jms que,一切正常。 我的activemq服务器安装在另一台服务器上,有时它可以脱机,我想处理连接错误。这可能吗?

这是我的弹簧配置

    <amq:connectionFactory id="jmsFactory" brokerURL="tcp://xxx.xxx.xxx.xxx:61616" />
    <bean id="messageConverter" class="com.unic.thesting.main.jms.message.TheStingMessageConverter" scope="tenant"/>
    <jms:listener-container concurrency="10" connection-factory="thestingJmsFactory" destination-type="queue" message-converter="thestingMessageConverter">
        <jms:listener destination="in" ref="orderStatusConsumer" method="consume"/>
    </jms:listener-container>

    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate" scope="tenant">
        <property name="messageConverter" ref="messageConverter" />
        <property name="connectionFactory">
            <bean class="org.springframework.jms.connection.SingleConnectionFactory" scope="tenant">
                <property name="targetConnectionFactory">
                    <ref local="jmsFactory" />
                </property>
            </bean>
        </property>
    </bean>

1 个答案:

答案 0 :(得分:1)

当你使用`时,DefaultMessageListenerContainer会被处理,如果因为任何原因被丢弃,它会恢复与JMS提供程序的连接(默认情况下,它会每5秒重试一次,直到恢复连接为止),所以你没有必须在听众面前做任何事情。

在使用jmsTemplate的发送方,如果在发送消息时出现任何问题,您将收到运行时org.springframework.jms.JmsException。您应该能够捕获任何自定义处理