-
Bug
-
Resolution: Done
-
Major
-
None
-
None
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.