2012-07-05 83 views
0

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

这里是我的Spring配置

<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

当你使用`手柄恢复到JMS提供者的连接,如果它被默认为重试(丢弃任何原因,它每隔5秒钟,直到连接该被登记的DefaultMessageListenerContainer被恢复),所以你不必在听者面前做任何事情。

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