清除jBoss DLQ

时间:2010-01-04 10:12:48

标签: java jboss jms jbossmq

有谁知道如何从jBoss清除DeadLetterQueue? 当我开始jBoss时,它正在等待4分钟:

12:09:06,281 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS'

和其他4分钟时间:

 [DLQ] () Bound to JNDI name: queue/DLQ

我认为可能我必须清除这个队列..但它不在jBoss里面......?

有人能帮忙吗?

提前感谢。

3 个答案:

答案 0 :(得分:1)

您找到的答案将从所有队列中删除邮件,这并不总是可取的。

你也可以通过在jboss.mq.destination上调用removeAllMessages()来完成相同的操作:name = DLQ; service = Queue mbean。

或者您可以根本不需要手动刷新DLQ - 在conf / jboss-service.xml中,将<TimeToLive>86400000</TimeToLive>添加到<DLQConfig>元素。这将在1天后过期。

答案 1 :(得分:1)

如果你要通过SQL解决它,至少要确保队列当时没有绑定并将其限制为死信队列,如下所示:

delete from jms_messages where destination = 'DLQ';

答案 2 :(得分:0)

解决:有一个jbossdb数据库:

delete  FROM jms_messages ;