This content has been marked as final.
Show 1 reply
-
1. Re: Rerun DLQ messages?
rocken7 May 8, 2007 2:47 PM (in response to rocken7)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(); }