2012-04-27 149 views
1

我正在使用獨立運行的HornetQ(v2.2.13)使用者讀取由JBOSS服務器(7.1.1 final)發佈的Persistent主題。一切都很好(在2-6之間),然後消費者停止接收來自主題的消息。從服務器上的日誌文件中,我看到數據不斷被泵入管道,但消費者日誌文件指示客戶端停止讀取數據。我從客戶端推斷說,上次從主題讀取消息的時間是12:00:00,服務器日誌說上次向主題推送消息的時間是14:00:00。HornetQ消費者在N小時後停止接收消息

我試過調整HornetQ配置,但它似乎沒有工作持續時間。

我用來與主題溝通的代碼如下。

創建了會議,並啓動它
private TransportConfiguration getTC(String hostname) { 
     Map<String,Object> params = new HashMap<String, Object>(); 
     params.put(TransportConstants.HOST_PROP_NAME, hostname); 
     params.put(TransportConstants.PORT_PROP_NAME, 5445); 
     TransportConfiguration tc = new TransportConfiguration(NettyConnectorFactory.class.getName(), params); 
     return tc; 

    } 

    private Topic createDestination(String destinationName) { 
     Topic topic = new HornetQTopic(destinationName); 
     return topic; 

    } 

    private HornetQConnectionFactory createCF(TransportConfiguration tc) { 
     HornetQConnectionFactory cf = HornetQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType .CF, tc); 
     return cf == null ? null : cf; 

    } 

代碼片段:

TransportConfiguration tc = this.getTC(this.hostname); 
     HornetQConnectionFactory cf = this.createCF(tc); 
     cf.setRetryInterval(4000); 
     cf.setReconnectAttempts(10); 
     cf.setConfirmationWindowSize(1000000); 

     Destination destination = this.createDestination(this.topicName); 
     logger.info("Starting Topic Connection"); 
     try { 
      this.connection = cf.createConnection(); 

      connection.start(); 
      this.session = connection.createSession(transactional, ackMode); 
      MessageConsumer consumer = session.createConsumer(destination); 
      consumer.setMessageListener(this); 

      logger.info("Started topic connection"); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
      logger.error("EXCEPTION!"); 
     } 

回答

1

你沒有得到任何有關的日誌服務器連接斷開在服務器端。

您是否嘗試玩過客戶端故障檢查週期和其他ping參數?

虛擬機設置如何?

你如何承認這些信息?我看到你將它創建爲交易。你確定你正在接收TX嗎?

+0

我在服務器端沒有看到有關斷開連接的任何日誌,只有當我看到有關斷開連接的任何消息時,我纔在客戶端和客戶端說它無法重新連接之前停止服務器。關於TX,我一收到每封郵件就會收到。 – FloppyDisk 2012-04-30 15:26:59

+0

沒有辦法複製它或有更多的信息,我只能猜測。我們已經測試過這種情況,我們沒有發現任何問題。我的猜測是你沒有配置分頁,另一個訂閱導致系統阻塞。你應該確保你沒有死亡訂閱(你創建了一個訂閱並且忘了它)或者配置分頁。你爲什麼不把討論跳到hornetq用戶論壇,在那裏你可以提供更多的信息? – 2012-04-30 20:30:42

+0

我會在今天晚些時候或明天早上在那裏開始一個線程。謝謝! – FloppyDisk 2012-05-01 16:46:39