So here is how to rerun expected messages from the DLQ. The close() calls are not perfect
...
And I coded up a JMX call to do this:
try
| {
| InitialContext ctx = new InitialContext();
| QueueConnection qc = TxsQueue.newConnection(ctx);
| Queue queue = TxsQueue.newQueue( ctx, "queue/DLQ" );
| QueueSession session = qc.createQueueSession(true,
javax.jms.Session.AUTO_ACKNOWLEDGE);
| QueueReceiver qr = session.createReceiver(queue);
| qc.start();
|
| for( Message m = qr.receiveNoWait(); m != null; )
| {
| if( m instanceof ObjectMessage )
| {
| ObjectMessage om = (ObjectMessage) m;
| Object obj = om.getObject();
|
| if(obj instanceof BaseTaskMessage)
| {
| TxsQueue.send(Constants.MDB_TASKS, om.getObject());
| }
| else if( obj instanceof BaseEmailMessage )
| {
| TxsQueue.send(Constants.MDB_EMAIL, om.getObject());
| }
| }
|
| m = qr.receiveNoWait();
| }
|
| qr.close();
| session.close();
| qc.close();
| }
| catch(Exception e)
| {
| e.printStackTrace();
| }
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4044027#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...