Debezium事务元数据-没有从SQL Server收到' END '事件



我正试图获得debezium 1.4.1的事务元数据。最后使用SQL Server数据库。

它似乎在某种程度上工作-dbservername.transaction主题已经创建,当我运行包含事务的存储过程时,然后收到"status":"BEGIN"事件,以及表主题上的CDC数据包。

未收到"status":"END"事件…直到我再次运行存储过程。

很可能是我没有正确关闭存储过程中的事务(无论如何,我不是MSSQL专家)…

这是我使用的结构:

CREATE PROCEDURE schema.myproc
AS
BEGIN
BEGIN TRANSACTION
...
COMMIT;
END
GO

任何想法我需要做什么,以获得END事件在过程结束?

不幸的是,在连接器接收到另一个事务BEGIN事件之前,没有可靠的方法来发出END事件。因此,如果数据库上没有连续的事务负载,则会延迟END事件。

您可以考虑在循环中运行一些虚拟事务来触发此操作。我们计划通过Debezium的心跳功能来支持这个OOTB(见DBZ-3263);在这方面的任何帮助都是非常受欢迎的。

相关内容

最新更新