[jboss-jira] [JBoss JIRA] Commented: (JBAS-6498) JbossMQ Error in committing to JDBC Persistence: message data loss
Bernd Eckenfels (JIRA)
jira-events at lists.jboss.org
Thu Feb 12 12:59:44 EST 2009
[ https://jira.jboss.org/jira/browse/JBAS-6498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12452430#action_12452430 ]
Bernd Eckenfels commented on JBAS-6498:
---------------------------------------
Basically the same Exception also happens to the next JDBC Interaction (removeTX).
Interestingly I see the txid in the TRANSACTIONS table as well as the message itself (msgid 53, TXOP=D, txid=233)
I think that specific case (besides retrying) would also be able to be ignored (when the message remove succeeded).
18:52:35,276 WARN [TransactionImpl] XAException: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=eckenfels01/19367, B
ranchQual=, localId=19367] errorCode=XAER_RMFAIL
org.jboss.mq.SpyXAException: Resource manager error during commit; - nested throwable: (org.jboss.mq.SpyJMSException: Co
uld not commit tx: 1090; - nested throwable: (java.sql.SQLException: this is a FAKE ERROR 8801))
at org.jboss.mq.SpyXAException.getAsXAException(SpyXAException.java:72)
at org.jboss.mq.SpyXAResource.commit(SpyXAResource.java:92)
at org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2253)
at org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1784)
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:358)
at org.jboss.tm.TxManager.commit(TxManager.java:240)
at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:351)
at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:906)
at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
at org.jboss.mq.SpySession.run(SpySession.java:323)
at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.jboss.mq.SpyJMSException: Could not commit tx: 1090; - nested throwable: (java.sql.SQLException: this is
a FAKE ERROR 8801)
at org.jboss.mq.pm.jdbc2.PersistenceManager.commitPersistentTx(PersistenceManager.java:891)
at org.jboss.mq.pm.Tx.commit(Tx.java:207)
at org.jboss.mq.pm.TxManager.commitTx(TxManager.java:159)
at org.jboss.mq.server.JMSDestinationManager.transact(JMSDestinationManager.java:518)
at org.jboss.mq.server.JMSServerInterceptorSupport.transact(JMSServerInterceptorSupport.java:126)
at org.jboss.mq.security.ServerSecurityInterceptor.transact(ServerSecurityInterceptor.java:197)
at org.jboss.mq.server.TracingInterceptor.transact(TracingInterceptor.java:352)
at org.jboss.mq.server.JMSServerInvoker.transact(JMSServerInvoker.java:132)
at org.jboss.mq.il.jvm.JVMServerIL.transact(JVMServerIL.java:175)
at org.jboss.mq.Connection.send(Connection.java:1110)
at org.jboss.mq.SpyXAResourceManager.commit(SpyXAResourceManager.java:185)
at org.jboss.mq.SpyXAResource.commit(SpyXAResource.java:88)
... 11 more
Caused by: java.sql.SQLException: this is a FAKE ERROR 8801
at net.sf.log4jdbc.StatementSpy._reportSql(StatementSpy.java:312)
at net.sf.log4jdbc.StatementSpy.reportSql(StatementSpy.java:300)
at net.sf.log4jdbc.PreparedStatementSpy.executeUpdate(PreparedStatementSpy.java:1002)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:251)
at org.jboss.mq.pm.jdbc2.PersistenceManager.removeTXRecord(PersistenceManager.java:974)
at org.jboss.mq.pm.jdbc2.PersistenceManager.commitPersistentTx(PersistenceManager.java:885)
... 22 more
> JbossMQ Error in committing to JDBC Persistence: message data loss
> ------------------------------------------------------------------
>
> Key: JBAS-6498
> URL: https://jira.jboss.org/jira/browse/JBAS-6498
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JMS (JBossMQ)
> Affects Versions: JBossAS-4.0.5.GA, JBossAS-4.2.3.GA
> Environment: JBoss running with JRE 1.6 and 1.5 with Oracle Thin Drivers on Various OS
> Reporter: Bernd Eckenfels
> Assignee: Adrian Brock
>
> In the seldom case of JDBC Errors the JDBC Provider seems to
> a) error in the XA commit
> b) fail to delete a pending message in table, but message is dequeued from MessageCache (and delivers it again only after restart)
> c) does not retry the JDBC statement
> This is a problem which happens on a few highly loaded systems, in order to reproduce it better, we used a fake JDBC driver to inject errors (same configuration as the last Bug but for different JDBC Statements of JBossMQ)
> So here is a sample stack trace of a failed commit (i.e. a Message Driven Bean modified a CMP as well as sent a transacted JMS MEssage via RA). The commit of the transacted sent failed at the first DB PRoblem (is not retried or "ignored").
> We think ignoring the exception might cause duplicate deliveries after restart, however it would be the better behaviour. Even better is retrying it at least once before giving up.
> 13:44:17,933 WARN [TransactionImpl] XAException: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=eckenfels01/2387, Br
> anchQual=, localId=2387] errorCode=XAER_RMFAIL
> org.jboss.mq.SpyXAException: Resource manager error during commit; - nested throwable: (org.jboss.mq.SpyJMSException: Co
> uld not commit tx: 233; - nested throwable: (java.sql.SQLException: this is a FAKE ERROR 2001))
> at org.jboss.mq.SpyXAException.getAsXAException(SpyXAException.java:72)
> at org.jboss.mq.SpyXAResource.commit(SpyXAResource.java:92)
> at org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2253)
> at org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1784)
> at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:358)
> at org.jboss.tm.TxManager.commit(TxManager.java:240)
> at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:351)
> at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:906)
> at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
> at org.jboss.mq.SpySession.run(SpySession.java:323)
> at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
> at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: org.jboss.mq.SpyJMSException: Could not commit tx: 233; - nested throwable: (java.sql.SQLException: this is a
> FAKE ERROR 2001)
> at org.jboss.mq.pm.jdbc2.PersistenceManager.commitPersistentTx(PersistenceManager.java:891)
> at org.jboss.mq.pm.Tx.commit(Tx.java:207)
> at org.jboss.mq.pm.TxManager.commitTx(TxManager.java:159)
> at org.jboss.mq.server.JMSDestinationManager.transact(JMSDestinationManager.java:518)
> at org.jboss.mq.server.JMSServerInterceptorSupport.transact(JMSServerInterceptorSupport.java:126)
> at org.jboss.mq.security.ServerSecurityInterceptor.transact(ServerSecurityInterceptor.java:197)
> at org.jboss.mq.server.TracingInterceptor.transact(TracingInterceptor.java:352)
> at org.jboss.mq.server.JMSServerInvoker.transact(JMSServerInvoker.java:132)
> at org.jboss.mq.il.jvm.JVMServerIL.transact(JVMServerIL.java:175)
> at org.jboss.mq.Connection.send(Connection.java:1110)
> at org.jboss.mq.SpyXAResourceManager.commit(SpyXAResourceManager.java:185)
> at org.jboss.mq.SpyXAResource.commit(SpyXAResource.java:88)
> ... 11 more
> Caused by: java.sql.SQLException: this is a FAKE ERROR 2001
> at net.sf.log4jdbc.StatementSpy._reportSql(StatementSpy.java:312)
> at net.sf.log4jdbc.StatementSpy.reportSql(StatementSpy.java:300)
> at net.sf.log4jdbc.PreparedStatementSpy.executeUpdate(PreparedStatementSpy.java:1002)
> at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:251)
> at org.jboss.mq.pm.jdbc2.PersistenceManager.removeMarkedMessages(PersistenceManager.java:919)
> at org.jboss.mq.pm.jdbc2.PersistenceManager.commitPersistentTx(PersistenceManager.java:884)
> ... 22 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list