Leo*_*rto 4 jmx hornetq jboss7.x
我正在使用jboss 7.1.1 final和HornetQ 2.2.13 final.
我配置了几个队列,其中一个是"完整"的消息,成千上万.我无法删除这些消息.
我试过用命令/ subsystem = messaging/hornetq-server = default/jms-queue = Queue:remove-messages使用jboss cli删除它们
它回应成功,但消息仍在那里......
我已经尝试使用带有jmx命令的JConsole删除它们.它以零号响应,计数消息仍然相同.
我尝试删除Jboss控制台内的队列并重新启动AS.在我再次配置队列后,消息仍然存在,因为它仍然存在.
它唯一的工作方式是配置hornetq服务器以禁用standalone.xml中的持久性.
有人知道如何使用jconsole或jboss cli吗?
Cle*_*nic 12
您所要做的就是调用方法:
来自jboss-cli:
/子系统=消息/文件hornetq服务器=默认/ JMS队列= testQueue:删除的消息
我只是尝试了你尝试的确切版本,添加了大量的消息,包括分页...一切正常.
我将我的系统配置为页面,并使用它来创建几千条消息:
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();
Run Code Online (Sandbox Code Playgroud)
然后我尝试了删除方法,它工作:
/子系统=消息/文件hornetq服务器=默认/ JMS队列= testQueue:删除的消息
如果这不起作用,有两种可能性:
我们更改了交付期间锁定在队列中的方式.也许你正在遇到一个固定的bug,你将不得不转向更新的版本.
你有消费者的队列.如果消息在处于交付状态的消费者缓冲区中,我们无法删除它们.您必须删除使用者才能删除所有邮件.
我在这里添加这个答案,因为我做了很多研究,试图复制你的问题,一切都像一个魅力.我需要更多信息来了解情况.
我认为最好的是用户论坛,我们可以进一步讨论它.SOF将是简单的问题/答案.它不是调查错误或其他类似内容的地方.
https://community.jboss.org/en/hornetq?view=discussions
| 归档时间: |
|
| 查看次数: |
9521 次 |
| 最近记录: |