2012-07-05 96 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。你應該能夠趕上它的任何自定義處理