问题描述
我正在尝试发布CDC Debezium Api以使用MysqL数据库中表中的数据。
引擎可以正常运行一会儿,但是几分钟后,我收到以下消息:
2020-08-24 15:04:10.676 INFO 486 --- [pool-2-thread-1] i.d.connector.common.BaseSourceTask : Stopping down connector
2020-08-24 15:04:10.676 INFO 486 --- [pool-2-thread-1] i.d.connector.MysqL.MysqLConnectorTask : Stopping MysqL connector task
2020-08-24 15:04:10.676 INFO 486 --- [pool-2-thread-1] i.d.connector.MysqL.ChainedReader : ChainedReader: Stopping the snapshot reader
2020-08-24 15:04:10.677 INFO 486 --- [pool-2-thread-1] i.d.connector.MysqL.SnapshotReader : discarding 6365 unsent record(s) due to the connector shutting down
2020-08-24 15:04:10.677 INFO 486 --- [pool-2-thread-1] i.d.connector.MysqL.SnapshotReader : discarding 0 unsent record(s) due to the connector shutting down
2020-08-24 15:04:10.688 INFO 486 --- [pool-2-thread-1] i.d.connector.MysqL.MysqLConnectorTask : Connector task finished all work and is Now shutdown
2020-08-24 15:04:10.690 INFO 486 --- [pool-2-thread-1] o.a.k.c.storage.FileOffsetbackingStore : Stopped FileOffsetbackingStore
2020-08-24 15:04:10.691 ERROR 486 --- [pool-2-thread-1] io.debezium.embedded.EmbeddedEngine : Error while trying to run connector class 'io.debezium.connector.MysqL.MysqLConnector'
org.apache.kafka.connect.errors.ConnectException: Streaming result set com.MysqL.cj.protocol.a.result.ResultsetRowsstreaming@200b1f49 is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries. Error code: 0; sqlSTATE: S1000.
at io.debezium.connector.MysqL.AbstractReader.wrap(AbstractReader.java:230) ~[debezium-connector-MysqL-1.2.0.Final.jar:1.2.0.Final]
at io.debezium.connector.MysqL.AbstractReader.Failed(AbstractReader.java:207) ~[debezium-connector-MysqL-1.2.0.Final.jar:1.2.0.Final]
at io.debezium.connector.MysqL.SnapshotReader.execute(SnapshotReader.java:831) ~[debezium-connector-MysqL-1.2.0.Final.jar:1.2.0.Final]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: java.sql.sqlException: Streaming result set com.MysqL.cj.protocol.a.result.ResultsetRowsstreaming@200b1f49 is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.
at com.MysqL.cj.jdbc.exceptions.sqlError.createsqlException(sqlError.java:129) ~[mysql-connector-java-8.0.18.jar:8.0.18]
at com.MysqL.cj.jdbc.exceptions.sqlError.createsqlException(sqlError.java:97) ~[mysql-connector-java-8.0.18.jar:8.0.18]
at com.MysqL.cj.jdbc.exceptions.sqlExceptionsMapping.translateException(sqlExceptionsMapping.java:122) ~[mysql-connector-java-8.0.18.jar:8.0.18]
at com.MysqL.cj.jdbc.ConnectionImpl.commit(ConnectionImpl.java:814) ~[mysql-connector-java-8.0.18.jar:8.0.18]
at io.debezium.connector.MysqL.SnapshotReader.execute(SnapshotReader.java:747) ~[debezium-connector-MysqL-1.2.0.Final.jar:1.2.0.Final]
... 3 common frames omitted
我已经将默认值从属性max.batch.size和max.queue.size减小到一半,但我仍然出现此错误。
任何人都知道为什么会这样以及如何解决吗?
这是我的属性配置:
props.setProperty("name","cdc-connector");
props.setProperty("connector.class","io.debezium.connector.MysqL.MysqLConnector");
props.setProperty("tasks.max","1");
props.setProperty("offset.storage","org.apache.kafka.connect.storage.FileOffsetbackingStore");
props.setProperty("offset.storage.file.filename","~/offsets.dat");
props.setProperty("offset.flush.interval.ms","10000");
/* begin connector properties */
props.setProperty("database.hostname",databaseHost);
props.setProperty("database.port",databasePort);
props.setProperty("database.user",databaseUserName);
props.setProperty("database.password",databasePassword);
props.setProperty("database.server.id",databaseServerId);
props.setProperty("database.server.name","myDatabase");
props.setProperty("useSSL","false");
props.setProperty("database.allowPublicKeyRetrieval","true");
props.setProperty("database.history","io.debezium.relational.history.FileDatabaseHistory");
props.setProperty("database.history.file.filename","~/dbhistory.dat");
props.setProperty("table.whitelist",String.join(",",coreDatabaseWhitelistTables));
props.setProperty("include.query","true");
props.setProperty("snapshot.mode","initial");
props.setProperty("decimal.handling.mode","string");
props.setProperty("converters","timestampConverter");
props.setProperty("timestampConverter.type","com.test.cdc.transformation.converter.TimestampConverter");
props.setProperty("max.batch.size","1024");
props.setProperty("max.queue.size","4096");
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)