Kafka Connect Oracle CDC Source Connector


In this case, only change data capture feature is getting used with property “start.from” : “current”.

But all in sudden oracle CDC source connector’s one of three tasks changed its state to DEGRADED. And all I could find is exception from connector’s log :

io.confluent.connect.oracle.cdc.util.RecordQueue lambda$createLoggingSupplier$0 - Exception in RecordQueue thread
org.apache.kafka.connect.errors.ConnectException: Exception converting redo to change event. SQL: 'alter table "" shrink space CHECK;' INFO: USER DDL (PlSql=1 RecDep=2)
	at io.confluent.connect.oracle.cdc.record.OracleChangeEventSourceRecordConverter.convert(OracleChangeEventSourceRecordConverter.java:323)
	at io.confluent.connect.oracle.cdc.ChangeEventGenerator.doGenerateChangeEvent(ChangeEventGenerator.java:431)
	at io.confluent.connect.oracle.cdc.ChangeEventGenerator.execute(ChangeEventGenerator.java:212)
	at io.confluent.connect.oracle.cdc.util.RecordQueue.lambda$createLoggingSupplier$0(RecordQueue.java:465)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
	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: net.sf.jsqlparser.JSQLParserException
	at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:51)
	at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:40)
	at io.confluent.connect.oracle.cdc.OracleDdlParser.parseAndApply(OracleDdlParser.java:134)
	at io.confluent.connect.oracle.cdc.record.OracleChangeEventSourceRecordConverter.convert(OracleChangeEventSourceRecordConverter.java:309)
	... 7 more
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "shrink" <S_IDENTIFIER>
    at line 1, column 33.

Was expecting one of:


	at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:22439)
	at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:22286)
	at net.sf.jsqlparser.parser.CCJSqlParser.AlterExpression(CCJSqlParser.java:14361)
	at net.sf.jsqlparser.parser.CCJSqlParser.AlterTable(CCJSqlParser.java:14374)
	at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:153)
	at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:75)
	at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:49)
	... 10 more

I’m unable to find any configuration to resolve this, neither I could find anything in troubleshooting section of documentation. Please help in this case.

Thank you.

What version of the connector is being used? What version of Oracle? There are a lot of nuances when working with any database since each does redo logs differently and databases are not always nice in keeping various APIs available (oracle’s log miner).

This recent blog just showcases the complexities around supporting various database versions: https://www.confluent.io/blog/oracle-cdc-connector-supports-oracle-database-19c/

its Oracle 12c and connector version is 1.2.1 Please help me with this.
Connector : Oracle CDC Source Connector | Confluent Hub

I am not a user of the Confluent Oracle Connector. That is an enterprise connector, so your enterprise subscription with confluent should be able to help you with this as well as Confluent’s enterprise knowledge base subscription.

  • in looking at the error it is because the table name is blank (or so it seems) so I would try to identify why CDC is giving you a blank table name.

alter table “” shrink space CHECK

  • I also see there is a 1.3.1 version of this connector. I would try to upgrade the connector

@nbuesing table name is present, I have removed it.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.