2015-06-25 30 views
0

這是我的情況。我有幾個ActiveMQ(JBoss-AMQ)生產者和消費者作爲服務安裝。在服務器重新啓動時,處理生產者或消費者服務在ActiveMQ代理服務之前啓動的這種情況的最佳做法是什麼?在這種情況下,即使在代理服務啓動後,生產者/客戶端也無法建立連接並開始保持連接狀態。重試建立JMS連接,而ActiveMQ代理不可用

這裏是連接創建我的代碼片段:

try { 
      connection = connectionFactory.createConnection(); 
      connection.start(); 
      LOGGER.info(STARTED_CONNECTION_WITH_THE_DESTINATION + destinationName); 
      session = createSession(); 
      destination = session.createQueue(destinationName); 
      LOGGER.info(CREATED_QUEUE_IN_DESTINATION + destinationName); 
      if (isImageProcAgent) { 
       consumer = createConsumer(); 
       LOGGER.info(CONSUMER_HAS_BEEN_INITIALIZED); 
      } else { 
       producer = session.createProducer(destination); 
       LOGGER.info(PRODUCER_HAS_BEEN_INITIALIZE); 
      } 
     } catch (MessagingException e) { 
      LOGGER.error(e); 
     } catch (JMSException e) { 
      LOGGER.error(e); 
     } 

我是新來的JMS所以感謝您的支持。

回答

0

這可以通過配置failover作爲this document解釋來實現。 根據我的代碼片段,我需要它的變化:

destination = session.createQueue("failover:"+destinationName); 
producer = session.createProducer("failover:"+destination);