[jboss-user] [JBoss Messaging] - Re: recovering from invalid messages, selectively deleting from db

Tim Coninx do-not-reply at jboss.com
Tue Nov 23 11:00:17 EST 2010


Tim Coninx [http://community.jboss.org/people/timconinxrvp] created the discussion

"Re: recovering from invalid messages, selectively deleting from db"

To view the discussion, visit: http://community.jboss.org/message/572505#572505

--------------------------------------------------------------
It seems that the problem has to do with messages staying in 'delivering' mode:
When application code called by the MDB throws an exception, it seems that the message does not leave the state 'delivering'. A DLQ has been configured, and the messages end up succesfully over there, but still the original Queue has the problem.
Code-wise, the MDB will only do a 
 context.setRollbackOnly();
when it encounters a JMSException (I hope that's okay).
 
Trying to remove all messages through the jmx console does not work as 'messages are still being delivered', with the exception

java.lang.IllegalStateException: Cannot remove references while deliveries are in progress (Channel 13360), there are 1

And when stopping and starting the MDB (also when starting a server on the same db) we get the exception
java.lang.IllegalStateException: Cannot remove references while deliveries are in progress (Channel 13360), there are 1
 
java.sql.SQLException: Invalid column index
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
 at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:903)
 at org.jboss.resource.adapter.jdbc.WrappedResultSet.getObject(WrappedResultSet.java:750)
 at org.jboss.messaging.core.impl.JDBCPersistenceManager.loadFromStart(JDBCPersistenceManager.java:999)
 at org.jboss.messaging.core.impl.PagingChannelSupport.load(PagingChannelSupport.java:211)
 at org.jboss.jms.server.destination.QueueService.startService(QueueService.java:105)
 
Starting the Queue, and in fact, the whole messageing subsystem, can then only be done after SQL deleteing the jbm_msg and jbm_msg_ref tables.
 
Hope this information helps
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/572505#572505]

Start a new discussion in JBoss Messaging at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2042]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20101123/2772901e/attachment.html 


More information about the jboss-user mailing list