2015-06-25 14 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);