XA two phase commit with active  GLOBAL TEMPORARY TABLE causes  An internal 
error identified by RawStore module
---------------------------------------------------------------------------------------------------------------

                 Key: DERBY-4731
                 URL: https://issues.apache.org/jira/browse/DERBY-4731
             Project: Derby
          Issue Type: Bug
          Components: JDBC
    Affects Versions: 10.6.1.0, 10.5.3.0, 10.4.2.0, 10.3.3.0, 10.7.0.0
            Reporter: Kathey Marsden


If an XA  two phase commit is performed while an GLOBAL TEMPORARY TABLE is 
active,  it will fail with:
XAER_RMERR
Exception in thread "main" javax.transaction.xa.XAException: An internal error w
as identified by RawStore module.
        at org.apache.derby.jdbc.EmbedXAResource.wrapInXAException(EmbedXAResour
ce.java:820)
        at org.apache.derby.jdbc.EmbedXAResource.commit(EmbedXAResource.java:143
)
        at ReproXATempTable.tempTableInXA(ReproXATempTable.java:51)
        at ReproXATempTable.main(ReproXATempTable.java:14)
Caused by: java.sql.SQLTransactionRollbackException: An internal error was ident
ified by RawStore module.
        at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLE
xceptionFactory40.java:88)
        at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:256)

        at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException
(TransactionResourceImpl.java:391)
        at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Tr
ansactionResourceImpl.java:346)
        at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConne
ction.java:2269)
        at org.apache.derby.impl.jdbc.EmbedConnection.xa_commit(EmbedConnection.
java:2924)
        at org.apache.derby.jdbc.XATransactionState.xa_commit(XATransactionState
.java:339)
        at org.apache.derby.jdbc.EmbedXAResource.commit(EmbedXAResource.java:141
)
        ... 2 more
Caused by: java.sql.SQLException: An internal error was identified by RawStore m
odule.
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExc
eptionFactory.java:45)
        at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransport
AcrossDRDA(SQLExceptionFactory40.java:119)
        at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLE
xceptionFactory40.java:70)
        ... 9 more
Caused by: ERROR 40XT0: An internal error was identified by RawStore module.
        at org.apache.derby.iapi.error.StandardException.newException(StandardEx
ception.java:276)
        at org.apache.derby.impl.store.raw.xact.Xact.setActiveState(Xact.java:18
09)
        at org.apache.derby.impl.store.raw.xact.Xact.addContainer(Xact.java:1357
)
        at org.apache.derby.impl.store.access.heap.Heap.create(Heap.java:274)
        at org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.creat
eConglomerate(HeapConglomerateFactory.java:195)
        at org.apache.derby.impl.store.access.RAMTransaction.createConglomerate(
RAMTransaction.java:823)
        at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.clean
upTempTableOnCommitOrRollback(GenericLanguageConnectionContext.java:1345)
        at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCom
mit(GenericLanguageConnectionContext.java:1263)
        at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.xaCom
mit(GenericLanguageConnectionContext.java:1160)
        at org.apache.derby.impl.jdbc.EmbedConnection.xa_commit(EmbedConnection.
java:2921)
        ... 4 more

See attached program for reproduction. 
javac  -g ReproXATempTable.java utilXid.java
java ReproXATempTable

To work around the issue, you can drop the temp table before ending the xa 
transaction.




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to