We are seeing the following error when using Debezium (3.2.7.Final) with Oracle 19c. The connector streamed CDC events successfully for a but now is stuck with this issue:
org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:67)
at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:142)
at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:46)
at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:326)
at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:207)
at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:147)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: oracle.streams.StreamsException: ORA-26824: user-defined XStream callback error
KNJLCRDeliverLCR.exportLCR
at oracle.streams.XStreamOut.XStreamOutReceiveLCRCallbackNative(Native Method)
at oracle.streams.XStreamOut.receiveLCRCallback(Unknown Source)
at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:116)
... 9 more
connector.class=io.debezium.connector.oracle.OracleConnector
errors.log.include.messages=true
topic.creation.default.partitions=-1
transforms.outbox.type=com.ontada.kafka.outbox.OutboxOracleRouter
schema.history.internal.consumer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='${env:KF_USERNAME}' password='${env:KF_PASSWORD}';
transforms=outbox
schema.include.list=EMR
transforms.outbox.dltTopicName=schema-changes.eventoutbox.dlt
transforms.outbox.table.fields.event.topic=topic
include.schema.changes=false
database.sslmode=require
schema.history.internal.producer.security.protocol=SASL_SSL
topic.creation.default.replication.factor=-1
lob.enabled=true
heartbeat.topics.prefix=__debezium-heartbeat
errors.log.enable=true
schema.history.internal.producer.sasl.mechanism=PLAIN
errors.retry.timeout=600000
database.dbname=${env:ORACLE_DB_NAME}
database.user=${env:ORACLE_DB_USER}
heartbeat.interval.ms=10000
schema.history.internal.kafka.bootstrap.servers=${env:KF_BOOTSTRAP_SERVER}
transforms.outbox.route.by.field=topic
transforms.outbox.table.fields.event.payload=payload
schema.history.internal.skip.unparseable.ddl=true
transforms.outbox.table.fields.event.key=key
database.password=${env:ORACLE_DB_PASSWORD}
schema.history.internal.consumer.sasl.mechanism=PLAIN
schema.history.internal.producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='${env:KF_USERNAME}' password='${env:KF_PASSWORD}';
snapshot.mode=schema_only
schema.history.internal.consumer.security.protocol=SASL_SSL
tasks.max=1
schema.history.internal.recovery.poll.interval.ms=2000
schema.history.internal.store.only.captured.tables.ddl=true
topic.prefix=outbox
decimal.handling.mode=string
schema.history.internal.kafka.topic=schema-changes.eventoutbox-qa2
transforms.outbox.route.topic.replacement=${routedByValue}
database.out.server.name=DBZOUT_EVENTBOX
database.connection.adapter=xstream
database.url=${env:ORACLE_DATABASE_URL}
errors.retry.delay.max.ms=30000
transforms.outbox.table.fields.event.timestamp=createddate
database.port=1521
schema.history.internal.recovery.attempts=4
topic.creation.enabled=false
database.hostname=${env:ORACLE_DB_HOSTNAME}
transforms.outbox.table.fields.event.headers=headers
table.include.list=EMR.EVENTOUTBOX
transforms.outbox.table.fields.event.id=id