2012-10-17 51 views
0

我的問候!ActiveMQ異步統計接收

我面對一個很常見的錯誤,但仍然沒有找到解決方案。我使用的異步消息發送:

Queue adminQueue=session.createQueue("admin_queue"); 
    MessageConsumer mc=session.createConsumer(adminQueue);    
    mc.setMessageListener(new AdminListener(emfMaster,ps)); 
    connection.start(); 

    this.statisticProvider = new AdminStats(adminQueue, mc, session);  

,我需要接受statstics它,使用統計插件的ActiveMQ,它塞到我的AdminStats類(它啓動一個新線程接收數據),但仍它告訴我,我只能使用同步消息發送,而不指定MessageListener。

[javax.jms.IllegalStateException: Cannot synchronously receive a message when a MessageListener is set] 

我無權改變郵件的發送方式。有沒有辦法以異步方式獲取統計信息?

在此先感謝。

回答

1

您可以使用JMX獲取統計信息。或者諮詢消息。從這裏的一些鏈接:http://activemq.apache.org/how-can-i-monitor-activemq.html

+0

好的,謝謝。我會嘗試。另外,我發現了一個非常奇怪的決定:有些人建議只是通過不觸及實際的消費者的偵聽器來使AdminStats類的消息使用者內部的Listener無效。謝謝。 – user