0

我已经配置(使用 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>
4

1 回答 1

1

DefaultMessageListenerContainer您使用 ` 处理恢复与 JMS 提供程序的连接时,如果它因任何原因被丢弃(默认情况下它每 5 秒重试一次,直到连接恢复),因此您不必在侦听器前端执行任何操作.

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

于 2012-07-05T16:03:11.013 回答