[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 23:56 Message generated for change (Settings changed) made by ejort You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Closed Resolution: Fixed Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 19:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 19:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 17:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 19:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 17:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 19:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 17:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 19:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 19:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 16:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 16:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 19:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 16:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 19:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at
[JBoss-dev] [ jboss-Bugs-614116 ] Oracle XA pooling/repeated rollback
Bugs item #614116, was opened at 2002-09-24 16:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=376685aid=614116group_id=22866 Category: JBossTX Group: v3.0 Rabbit Hole Status: Open Resolution: None Priority: 5 Submitted By: Elias Ross (genman) Assigned to: Nobody/Anonymous (nobody) Summary: Oracle XA pooling/repeated rollback Initial Comment: I've been trying to isolate some problems I've been having with transaction roll-backs and message-driven beans. Basically, when a transaction is rolled-back a number of times in the onMessage() body (by calling MessageDrivenContext.setRollbackOnly() 5-10 times in succession), the message is re-delivered to the MDB, but the Oracle Connection is no longer in a good state. This problem manifests itself when using a very small connection pool (say 1-5) connections. Example code snippet: public void onMessage(javax.jms.Message jmsMessage) { Connection c = null; try { TextMessage tm = (TextMessage)jmsMessage; String text = tm.getText(); c = ds.getConnection(); PreparedStatement s = c.prepareStatement(insert into test values (?)); s.setString(1, text); s.executeUpdate(); mdc.setRollbackOnly(); } catch (Exception e) { throw new EJBException(e); } finally { if (c != null) { try { c.close(); } catch (Exception e) { e.printStackTrace(); } } First I see it works for a few times. It rolls-back successfully about 5 or 6 times. Then, for no reason, I see: 15:50:44,922 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.delistResource(TxCapsule.java:579) at org.jboss.tm.TransactionImpl.delistResource(TransactionImpl.java:92) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.delist(XATxConnectionManager.java:284) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.connectionClosed(XATxConnectionManager.java:331) at org.jboss.resource.adapter.jdbc.BaseManagedConnection.fireConnectionEvent(BaseManagedConnection.java:152) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.fireConnectionEvent(XAManagedConnection.java:215) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection$1.connectionClosed(XAManagedConnection.java:127) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnection.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:445) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2900) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) at com.proteusmobile.smx.AMDB.onMessage(AMDB.java:140) Later: 15:50:44,929 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//4, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.allowGlobalTxnModeOnly(OracleXAResource.java:1069) at oracle.jdbc.xa.OracleXAResource.suspendStacked(OracleXAResource.java:296) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:381) at org.jboss.tm.TxCapsule.endResource(TxCapsule.java:1237) at org.jboss.tm.TxCapsule.endResources(TxCapsule.java:1312) at org.jboss.tm.TxCapsule.rollback(TxCapsule.java:440) at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:83) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:301) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417) at org.jboss.mq.SpySession.run(SpySession.java:259) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655) at java.lang.Thread.run(Thread.java:479) And then, I can no longer get a connection: 15:50:44,971 WARN [TxCapsule] XAException: tx=XidImpl [FormatId=257, GlobalId=eross.m-qube.com//5, BranchQual=] errorCode=XAER_PROTO javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1045) at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153) at org.jboss.tm.TxCapsule.startResource(TxCapsule.java:1180) at org.jboss.tm.TxCapsule.enlistResource(TxCapsule.java:679) at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:102) at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:262) at