Разъем Kafka debezium- postgres в моем приложении выдает эту ошибку:
org.apache.kafka.connect.errors.ConnectException: Unable to obtain valid replication slot. Make sure there are no long-running transactions running in parallel as they may hinder the allocation of the replication slot when starting this connector
at io.debezium.connector.postgresql.connection.PostgresConnection.readReplicationSlotInfo(PostgresConnection.java:226)
at io.debezium.connector.postgresql.connection.PostgresConnection.getReplicationSlotState(PostgresConnection.java:150)
at io.debezium.connector.postgresql.PostgresConnectorTask.start(PostgresConnectorTask.java:98)
at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:49)
at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:198)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
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)
Приложение использует postgresql версия 9.6.11, значение max_replication_slots
равно 10. Я могу см. активный логический replication_slot в базе данных с подтвержденным_flush_lsn = null, restart_lsn = 3/93043310, catalog_xmin = 202656, active = t, datoid = 16407, slot_type = логический, active_pid = 32183, плагин = wal2 json, slot_name = slot1, database = db1 (я заменил имя слота и имена db на фиктивные значения)
В соответствии с моим пониманием, так как Verified_flush_lsn = null для слота логической репликации здесь вызывает эту ошибку, поскольку не позволяет соединителю найти этот слот.
Как я могу это исправить и почему значение подтверждается_flush_lsn будет нулевым?