2010-01-04 4 views
1

Est-ce que quelqu'un sait comment effacer DeadLetterQueue de jBoss? Quand je commence jBoss, il attend 4 minutes à:clear jBoss DLQ

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

et autres 4 min à:

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

et je pense que probablement je dois effacer ce queue..but il est à l'intérieur de jBoss ...?

Quelqu'un peut-il donner un coup de main?

merci d'avance.

Répondre

1

La réponse que vous avez trouvé supprime les messages de toutes les files d'attente, ce qui est pas toujours souhaitable.

Vous pouvez également effectuer la même chose via jmx, en appelant removeAllMessages() sur le fichier jboss.mq.destination: name = DLQ; service = Queue mbean. Ou vous pouvez éliminer le besoin de vider manuellement votre DLQ - conf/jboss-service.xml, ajoutez <TimeToLive>86400000</TimeToLive> à l'élément <DLQConfig>. Cela expire les messages après 1 jour.

0

Résolu: Il y a une base de données jbossdb:

delete FROM jms_messages ; 
1

Si vous allez le résoudre via SQL, assurez-vous au moins que les Queues sont non liés au temps et limiter à la file d'attente Lettre morte comme ceci:

delete from jms_messages where destination = 'DLQ';