Debezium Oracle Connector问题-ORA-26908:XStream API

问题描述

我当前正在运行Oracle Database 12c企业版12.2.0.1.0

我正在使用以下Docker映像配置Debezium Kafka Connect API:debezium / connect:1.2 使用以下连接器配置:

curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" 192.168.99.100:8083/connectors/ -d '{ "name": "oracle-connector","config": {
 "connector.class": "io.debezium.connector.oracle.OracleConnector","tasks.max": "1","database.server.name" : "server1","database.hostname": "IP","database.port": "1521","database.user": "xstrm","database.password": "xs","database.dbname": "DB_NAME","database.out.server.name" : "dbzxout","database.server.id": "SERVER_ID","database.server.name": "Oracle_12_2","table.whitelist": "TABLE_NAME","database.history.kafka.bootstrap.servers": "broker:9093","database.history.kafka.topic": "TOPIC_NAME" }
 }'

启动连接器时,Debezium Kafka Connect API将显示以下错误消息:

2020-08-26 13:31:15,354 INFO   ||  Kafka version: 2.5.0   [org.apache.kafka.common.utils.AppInfoParser]
2020-08-26 13:31:15,356 INFO   ||  Kafka commitId: 66563e712b0b9f84   [org.apache.kafka.common.utils.AppInfoParser]
2020-08-26 13:31:15,356 INFO   ||  Kafka startTimeMs: 1598448675354   [org.apache.kafka.common.utils.AppInfoParser]
2020-08-26 13:31:15,356 INFO   ||  [Producer clientId=Oracle_12_2_ODS-dbhistory] Cluster ID: llDbLW94QVSmIeDrcJKXag   [org.apache.kafka.clients.Metadata]
2020-08-26 13:31:15,362 INFO   ||  [Consumer clientId=Oracle_12_2_ODS-dbhistory,groupId=Oracle_12_2_ODS-dbhistory] Cluster ID: llDbLW94QVSmIeDrcJKXag   [org.apache.kafka.clients.Metadata]
2020-08-26 13:31:15,818 INFO   ||  Requested thread factory for connector OracleConnector,id = Oracle_12_2_ODS named = change-event-source-coordinator   [io.debezium.util.Threads]
2020-08-26 13:31:15,819 INFO   ||  Creating thread debezium-oracleconnector-Oracle_12_2_ODS-change-event-source-coordinator   [io.debezium.util.Threads]
2020-08-26 13:31:15,824 INFO   ||  WorkerSourceTask{id=oracle-connector14-0} Source task finished initialization and start   [org.apache.kafka.connect.runtime.WorkerSourceTask]
2020-08-26 13:31:15,829 INFO   ||  Metrics registered   [io.debezium.pipeline.ChangeEventSourceCoordinator]
2020-08-26 13:31:15,830 INFO   ||  Context created   [io.debezium.pipeline.ChangeEventSourceCoordinator]
2020-08-26 13:31:15,832 INFO   ||  Snapshot step 1 - Preparing   [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:15,942 INFO   ||  Snapshot step 2 - Determining captured tables   [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,318 INFO   ||  Snapshot step 3 - Locking captured tables   [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,321 INFO   ||  Snapshot step 4 - Determining snapshot offset   [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,348 INFO   ||  Snapshot step 5 - Reading structure of captured tables   [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,349 INFO   ||  Snapshot step 6 - Persisting schema history   [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,351 INFO   ||  Snapshot step 7 - Snapshotting data   [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,412 INFO   ||  Snapshot - Final stage   [io.debezium.pipeline.source.AbstractSnapshotChangeEventSource]
2020-08-26 13:31:18,413 INFO   ||  Snapshot ended with SnapshotResult [status=COMPLETED,offset=OracleOffsetContext [scn=9653153220848]]   [io.debezium.pipeline.ChangeEventSourceCoordinator]
2020-08-26 13:31:18,413 WARN   ||  After applying blacklist/whitelist filters there are no tables to monitor,please check your configuration   [io.debezium.relational.RelationalDatabaseSchema]
2020-08-26 13:31:18,413 INFO   ||  Connected metrics set to 'true'   [io.debezium.pipeline.metrics.StreamingChangeEventSourceMetrics]
2020-08-26 13:31:18,413 INFO   ||  Starting streaming   [io.debezium.pipeline.ChangeEventSourceCoordinator]
2020-08-26 13:31:18,529 ERROR  ||  Producer failure   [io.debezium.pipeline.ErrorHandler]
java.lang.RuntimeException: oracle.streams.StreamsException: ORA-26908: XStream API must be executed using a dedicated server process.

        at io.debezium.connector.oracle.OracleStreamingChangeEventSource.execute(OracleStreamingChangeEventSource.java:78)
        at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:108)
        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: oracle.streams.StreamsException: ORA-26908: XStream API must be executed using a dedicated server process.

例如,在PLsql中,可以通过以下方法解决

    (CONNECT_DATA =
      (SERVER = dedicated)
     )

任何想法,如何在连接器端或服务器端解决此问题? 我检查了Debezium文档,没有找到有关我可以设置的连接器属性的任何信息。 非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)