Also, is it possible to initiate a queue flush from the JMX-Console?
Actually, I think all is working, but I was a bit panicked this morning. :)
Anyways, I have found that the JMS Messages are now in the DLQ. Is there a way to resend these messages? Can I so it from the JMX-Console? Thanks in advance,
First, go to http://localhost:8080/jmx-console, find your queue name and click on it. There you will find all the parameters you can tweak including a way to flush the queue of any messages it contains.
As far as pushing message back on to a queue from the DLQ there is no JMX based solution for this in JBoss. You can however easily write one that consumes the messages off the DLQ (which will removed them) and pushes them to the queue of your choice.
All the big jms provider available on the market have a vendor specific solution (management client program) for this kind of administrative tasks. Since JMS is standard and the only api you need (as mentioned), a generic jms admin client program would be a nice thing JBoss could have too...
The only open-source thing I've found is:
I've got it working with JBoss, look at the sf forums...
The SWINGing jmx web-console applet is a good start for JBoss. What about integrating hermes (a generic SWING jms admin client) in JBoss, JBossMQ or the web-console applet?
It looks promising, but what we really need is something to do more general
admin tasks like creating users/queues/subscription etc.
spohl do you want to add your comment in the development forum, rather than
hijacking somebody else's thread:
Back on topic. What you do with the contents of the DLQ(s) is up to you.
One thing we did to process DLQ messages was to modify the destination column of the messages directly in the database.
UPDATE JMS_MESSAGES SET DESTINATION='QUEUE.NameOfYourQueueHere'
We only have a couple of queues and in our case it was easy to guess what queue the messages used to belong to from their size. We restarted JBoss to get it to process the messages, but this queue flushing thing sounds good.
However, the processing of messages stopped after about 40% of the messages in the table?!?!?
...just wanted to give a hint on this client gui to Mike that allows to re-send messages from one queue (even the DLQ) to another via drag&drop. No time consuming writing of a custom jms client.
You can also lookup the "OriginatingQ" property in the message header to see what Queue the message came from prior to being put on the DLQ. JBoss does populate this properly, and I presume that all other JMS providers do as well.