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

Debezium Oracle connector fails to parse Oracle database version

XMLWordPrintable

    • Low

      In order to make your issue reports as actionable as possible, please provide the following information, depending on the issue type.

      Bug report

      For bug reports, provide this information, please:

      What Debezium connector do you use and what version?

      Oracle Connector v 3.3.1.Final

      What is the connector configuration?

       

      connector.class = io.debezium.connector.oracle.OracleConnector
      max.queue.size = 16384
      record.processing.shutdown.timeout.ms = 1000
      include.schema.changes = false
      schema.history.internal.store.only.captured.tables.ddl = true
      record.processing.order = ORDERED
      schema.history.internal.file.filename = /Debezium/schema-history-store.dat
      tombstones.on.delete = false
      topic.prefix = FREEPDB1
      offset.storage.file.filename = Debezium/offset-store.dat
      signal.data.collection = FREEPDB1.TPCC.SIGNALS
      lob.enabled = true
      record.processing.threads =
      errors.retry.delay.initial.ms = 30000
      value.converter = org.apache.kafka.connect.json.JsonConverter
      key.converter = org.apache.kafka.connect.json.JsonConverter
      database.dbname = FREEPDB1
      database.user = system
      offset.storage = org.apache.kafka.connect.storage.FileOffsetBackingStore
      database.pdb.name = FREEPDB1
      database.url = jdbc:oracle:thin:@localhost/FREEPDB1
      time.precision.mode = connect
      errors.retry.delay.max.ms = 60000
      notification.enabled.channels = debezium-stats
      offset.flush.timeout.ms = 5000
      event.processing.failure.handling.mode = fail
      offset.flush.interval.ms = 0
      internal.task.management.timeout.ms = 8000000
      schema.history.internal = io.debezium.storage.file.history.FileSchemaHistory
      record.processing.with.serial.consumer = false
      errors.max.retries = 0
      database.password = ********
      name = engine-1
      max.batch.size = 8192
      table.include.list = ^TPCC.CUSTOMER$
      snapshot.mode = no_data
      

       

      What is the captured database version and mode of deployment?

      gvenzl/oracle-free:latest

      What behavior do you expect?

      It is expected for Oracle connector start and stream data as expected.

      What behavior do you see?

      Oracle connector fails on start up with the below error:

      16:20:58.816 [pool-5-thread-1] INFO  io.debezium.embedded.async.AsyncEmbeddedEngine - Engine state has changed from 'CREATING' to 'INITIALIZING'
      16:20:58.833 [pool-5-thread-1] INFO  io.debezium.config.CommonConnectorConfig - Loading the custom source info struct maker plugin: io.debezium.connector.oracle.OracleSourceInfoStructMaker
      16:20:58.843 [pool-5-thread-1] INFO  io.debezium.util.Threads - Requested thread factory for component OracleConnector, id = NORTHWIND named = connection-validation
      16:20:58.844 [pool-5-thread-1] INFO  io.debezium.util.Threads - Creating thread debezium-oracleconnector-NORTHWIND-connection-validation
      16:20:58.896 [debezium-oracleconnector-NORTHWIND-connection-validation] ERROR io.debezium.connector.oracle.OracleConnector - Failed testing connection for {connector.class=io.debezium.connector.oracle.OracleConnector, ...} with user '[database.user,null,[],[],true]'
      java.lang.RuntimeException: Failed to resolve Oracle database version
          at io.debezium.connector.oracle.OracleConnection.resolveOracleDatabaseVersion(OracleConnection.java:197)
          at io.debezium.connector.oracle.OracleConnection.<init>(OracleConnection.java:115)
          at io.debezium.connector.oracle.OracleConnection.<init>(OracleConnection.java:96)
          at io.debezium.connector.oracle.OracleConnector.lambda$validateConnection$0(OracleConnector.java:85)
          at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
          at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
          at java.base/java.lang.Thread.run(Thread.java:1589)
      16:20:58.904 [pool-5-thread-1] ERROR io.debezium.embedded.async.AsyncEmbeddedEngine - Engine has failed with
      io.debezium.DebeziumException: Connector configuration is not valid. Unable to connect: Failed to resolve Oracle database version
          at io.debezium.embedded.async.AsyncEmbeddedEngine.validateAndGetConnectorConfig(AsyncEmbeddedEngine.java:776)
          at io.debezium.embedded.async.AsyncEmbeddedEngine.initializeConnector(AsyncEmbeddedEngine.java:367)
          at io.debezium.embedded.async.AsyncEmbeddedEngine.run(AsyncEmbeddedEngine.java:207)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
          at java.base/java.lang.Thread.run(Thread.java:1589)
      16:20:58.905 [pool-5-thread-1] INFO  io.debezium.embedded.async.AsyncEmbeddedEngine - Engine state has changed from 'INITIALIZING' to 'STOPPING'
      16:20:58.905 [pool-5-thread-1] INFO  io.debezium.embedded.async.AsyncEmbeddedEngine - Engine is stopped.
      16:20:58.905 [pool-5-thread-1] INFO  io.debezium.embedded.async.AsyncEmbeddedEngine - Engine state has changed from 'STOPPING' to 'STOPPED'

       

      Do you see the same behaviour using the latest released Debezium version?

      Yes, same with latest stable version 3.3.1.Final

      Do you have the connector logs, ideally from start till finish?

      yes, attached.

      How to reproduce the issue using our tutorial deployment?

      Using the Oarcle connector version 3.3.1.Final, start the connector in embedded engine mode. It should fail for Oracle docker image for latest version - gvenzl/oracle-free:latest

      Feature request or enhancement

      None

      Which use case/requirement will be addressed by the proposed feature?

      <Your answer>

      Implementation ideas (optional)

      As discussed in this thread (#community-oracle > Error while creating a connector @ 💬), update the query to fetch version and parsing logic.

              Unassigned Unassigned
              poonam.meghnani Poonam Meghnani
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: