从 CDC 过程返回的更改标识符在服务器轮换事务日志之前有效。
通常,更改游标保持有效,因为每次调用 db.cdc.query
都会更新游标。但是,非常严格的选择器可能会导致 db.cdc.query
不返回任何更改。在极端情况下,这可能导致游标在事务日志轮换之前没有及时更新。为避免这种情况,代码示例在 db.cdc.query
返回空时将游标更新为 db.cdc.current
。请注意,为了使此方法有效,需要在调用 db.cdc.query
之前调用 db.cdc.current
并将其存储起来。
避免此问题的另一种方法是使用更广泛的选择器,并在客户端执行过滤。