2 Replies Latest reply on Mar 19, 2014 8:59 PM by Mikereiche-Oracle

    ORA-41412: results changed during replay; failover cannot continue

    Mikereiche-Oracle

      To exercise transaction replay, I've followed the instructions here : Application Continuity for Java

      I've created one connection, executed sql on it,(SELECT * from S13NEW_ODI_REPO.SNP_CONNECT WHERE CON_NAME='WORKREP'),  then created a second connection, and disconnected the sessions with :  {call DBMS_SERVICE.DISCONNECT_SESSION('<service>', IMMEDIATE)}, then executed sql on the first connection again and get the exception and getNextException() below.

       

      What does it mean? What is missing to replay the transaction?

       

      java.sql.SQLRecoverableException: No more data to read from socket

          at oracle.jdbc.driver.T4CMAREngineStream.unmarshalUB1(T4CMAREngineStream.java:456)

          at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:397)

          at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)

          at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)

          at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:221)

          at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:49)

          at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:939)

          at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)

          at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4791)

          at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:4838)

          at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1501)

          at oracle.jdbc.proxy.oracle$1jdbc$1replay$1driver$1TxnReplayableStatement$2oracle$1jdbc$1internal$1OraclePreparedStatement$$$Proxy.executeQuery(Unknown Source)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

          at java.lang.reflect.Method.invoke(Method.java:601)

          at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:160)

          at com.sun.proxy.$Proxy16.executeQuery(Unknown Source)

          at Test.execStatement(Test.java:225)

          at Test.run(Test.java:158)

          at Test.main(Test.java:109)

       

      java.sql.SQLException: ORA-41412: results changed during replay; failover cannot continue

          at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)

          at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)

          at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)

          at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)

          at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)

          at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)

          at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:221)

          at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:49)

          at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:770)

          at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:925)

          at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1111)

          at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4791)

          at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:4838)

          at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1501)

          at oracle.jdbc.proxy.oracle$1jdbc$1replay$1driver$1TxnReplayableStatement$2oracle$1jdbc$1internal$1OraclePreparedStatement$$$Proxy.executeQuery(Unknown Source)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

          at java.lang.reflect.Method.invoke(Method.java:601)

          at oracle.jdbc.replay.driver.TxnReplayableBase.replayOneCall(TxnReplayableBase.java:481)

          at oracle.jdbc.replay.driver.TxnFailoverManagerImpl.replayAllBeforeLastCall(TxnFailoverManagerImpl.java:1506)

          at oracle.jdbc.replay.driver.TxnFailoverManagerImpl.handleOutageInternal(TxnFailoverManagerImpl.java:1295)

          at oracle.jdbc.replay.driver.TxnFailoverManagerImpl.handleOutage(TxnFailoverManagerImpl.java:925)

          at oracle.jdbc.replay.driver.TxnReplayableBase.onErrorForAll(TxnReplayableBase.java:314)

          at oracle.jdbc.replay.driver.TxnReplayableStatement.onErrorForAll(TxnReplayableStatement.java:633)

          at oracle.jdbc.proxy.oracle$1jdbc$1replay$1driver$1TxnReplayableStatement$2oracle$1jdbc$1internal$1OraclePreparedStatement$$$Proxy.executeQuery(Unknown Source)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

          at java.lang.reflect.Method.invoke(Method.java:601)

          at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:160)

          at com.sun.proxy.$Proxy16.executeQuery(Unknown Source)

          at Test.execStatement(Test.java:225)

          at Test.run(Test.java:158)

          at Test.main(Test.java:109)