您所要做的就是调用该方法:
来自 jboss-cli:
/subsystem=messaging/hornetq-server=default/jms-queue=testQueue:remove-messages
我刚刚通过添加大量消息(包括分页)尝试了您尝试过的确切版本。一切正常。
我将系统配置为分页,并使用它创建了几千条消息:
HornetQConnectionFactory cf = HornetQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, new TransportConfiguration(NETTY_CONNECTOR_FACTORY));
Connection conn = cf.createConnection("guest", "hello");
Session sess = conn.createSession(true, Session.SESSION_TRANSACTED);
javax.jms.Queue queue = sess.createQueue("testQueue");
MessageProducer prod = sess.createProducer(queue);
for (int i = 0 ; i < 50000; i++)
{
TextMessage msg = sess.createTextMessage("hello " + i);
prod.send(msg);
if (i % 500 == 0)
{
System.out.println("Sent " + i);
System.out.println("commit");
sess.commit();
}
}
sess.commit();
conn.close();
然后我尝试了 remove 方法,它起作用了:
/subsystem=messaging/hornetq-server=default/jms-queue=testQueue:remove-messages
如果这不起作用,则有两种可能性:
我在这里添加了这个答案,因为我做了很多研究试图复制你的问题,一切都像一个魅力。我需要更多信息来了解正在发生的事情。
我认为最好的是用户论坛,我们可以在其中进一步讨论。SOF 将进行简单的问题/答案。它不是调查错误或类似的地方。
https://community.jboss.org/en/hornetq?view=discussions