When working with Debezium and Postgres, we're seeing an issue where the heartbeat doesn't seem to be working. We have created a dummy table in the target database for performing the heartbeat actions on, but we don't ever see any change to the data in that table.
We've enabled the heartbeat, as we're seeing the same behavior that it was designed to address, namely https://issues.redhat.com/browse/DBZ-1815.
We're using Postgres 12, and Debezium 1.3 (or 1.5, have experimented with both)
The configuration is
{
"name": "my-service-outbox",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"plugin.name":"pgoutput",
"database.hostname": "dbhostname",
"database.port": "5432",
"database.user": "user",
"database.password": "password",
"database.dbname" : "dbname",
"database.server.name": "dbservername",
"table.include.list": "public.outbox",
"publication.autocreate.mode" : "filtered",
"snapshot.mode":"exported",
"heartbeat.interval.ms": 1000,
"heartbeat.action.query" :"INSERT INTO public.heartbeat (id, ts) VALUES (1, NOW()) ON CONFLICT(id) DO UPDATE SET ts=EXCLUDED.ts;"
}
}
Related, but no solution: https://stackoverflow.com/a/60808620/97879
It feels like we've missed something to enable the heartbeat, but not seeing anything besides ensuring the interval is set.
EDIT: The heartbeat is working, as we can see messages in the heartbeat topic. But the database action is not being performed.
Any suggestions?
there is a zero-width space in the documentation so if you copied it the string contains it and it means it is not the option name expected by Debezium.