这在JMS API本身中不存在,但HornetQ QueueControl管理对象中有一个方法'removeMessages(filter)'.这个方法可以在队列的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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4758 次 |
| 最近记录: |