Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-6610

Oracle connector is not recoverable if ORA-01327 is wrapped by another JDBC or Oracle exception

XMLWordPrintable

    • Important

      Hi,

      I've hit one issue which relates with the earlier fixed bug: https://issues.redhat.com/browse/DBZ-4010

      In my case i'm getting the following stacktrace:

       

      at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:72)at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:242)at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:62)at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:205)at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:172)at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:118)at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base/java.lang.Thread.run(Thread.java:834)Caused by: java.sql.SQLException: ORA-16330: error in container \"SNAPSHOT01\"ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8659ORA-00604: error occurred at recursive SQL level 1ORA-01327: failed to exclusively lock system dictionary as required by buildORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8659ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 4519ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 4082ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 4447ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 4534ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 5346ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8619ORA-06512: at line 1ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 562ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 5699ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 5752ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8410ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8673ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8829ORA-06512: at \"SYS.DBMS_LOGMNR_D\", line 61ORA-06512: at line 1
      at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:553)at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:229)at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:41)at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:928)at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1213)at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1831)at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1786)at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:303)at io.debezium.jdbc.JdbcConnection.executeWithoutCommitting(JdbcConnection.java:1449)at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.buildDataDictionary(LogMinerStreamingChangeEventSource.java:457)at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.initializeRedoLogsForMining(LogMinerStreamingChangeEventSource.java:385)at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:217)... 9 moreCaused by: Error : 16330, Position : 0, Sql = BEGIN DBMS_LOGMNR_D.BUILD (options => DBMS_LOGMNR_D.STORE_IN_REDO_LOGS); END;, OriginalSql = BEGIN DBMS_LOGMNR_D.BUILD (options => DBMS_LOGMNR_D.STORE_IN_REDO_LOGS); END;, Error Msg = ORA-16330: error in container \"SNAPSHOT01\"ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8659ORA-00604: error occurred at recursive SQL level 1ORA-01327: failed to exclusively lock system dictionary as required by buildORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8659ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 4519ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 4082ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 4447ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 4534ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 5346ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8619ORA-06512: at line 1ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 562ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 5699ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 5752ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8410ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8673ORA-06512: at \"SYS.DBMS_LOGMNR_INTERNAL\", line 8829ORA-06512: at \"SYS.DBMS_LOGMNR_D\", line 61ORA-06512: at line 1
      at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)... 25 more 

      And the connector task ends in the failed state.

       

      Dispite the Oracle error code "ORA-01327" is included in the RETRIABLE_ERROR_CODES

      From my point of view, the problem is caused by wrapping the "ORA-01327" error into another main exception as show in the stacktrace above.

      The Oracle database is CDB type, version: 19.14.0.0.0

       

            ccranfor@redhat.com Chris Cranford
            radek.knytl Radek Knytl (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: