2012-09-20 29 views

回答

6

這在JMS API本身並不存在,但HornetQ QueueControl管理對象中有一個方法'removeMessages(filter)'。該方法可以在Queue的JMX Bean中找到,但我不知道如何在Arquillian中獲得該方法。

幸運的是,您可以通過'hornetq.management'隊列調用管理操作。見http://docs.jboss.org/hornetq/2.2.5.Final/user-manual/en/html/management.html。在實踐中,下面應該工作:

 Queue managementQueue = HornetQJMSClient.createQueue("hornetq.management"); 
    QueueRequestor requestor = new QueueRequestor(session, managementQueue); 
    Message m = session.createMessage(); 
    JMSManagementHelper.putOperationInvocation(m, 
               "jms.queue.exampleQueue", 
               "removeMessages","*"); 
    Message reply = requestor.request(m); 
    boolean success = JMSManagementHelper.hasOperationSucceeded(reply); 
2

如果要重新啓動服務器,你可以刪除分頁和數據文件夾(同時保持綁定)。

相關問題