mco_translog_play_ex
此函数读取指定的日志文件或管道,如果日志文件“兼容”,则通过调用用户定义的回调来迭代其内容,并触发已注册的事件。
有关概述,请参阅事务日志记录应用页面。
原型
MCO_RET mco_translog_play_ex( mco_TL_play_params_h tl_play_params);
参数
params | 将要初始化的结构体 mco_translog_plan_params_t |
描述
此函数类似于 ,不同之处在于它采用单个结构参数。该结构通过调用mco_translog_play()``mco_TL_play_params_t``mco_TL_play_params_t``mco_translog_play_params_init().
结构的字段对应于具有一个附加字段的参数:mco_translog_play()
mco_device_t *pipe_device;
这是读取器要使用的管道设备的描述符。如果值为 is,则事务日志记录运行时将选择没有任何连接的读取器的第一个管道。使用旧样式和 API 时,也会发生同样的情况。pipe_device``pipe_device``NULL``mco_translog_play() ``mco_translog_iterate()
返回
MCO_S_OK | 已成功读取日志文件 |
除 MCO_S_OK 以外的用户定义代码 | 如果用户定义的回调返回除 MCO_S_OK 以外的任何值,则函数将中止并将此代码作为其自己的返回代码返回。如果在用户定义的迭代回调中发生错误情况,这是中断迭代循环的正确方法。 mco_translog_iterate() |
MCO_E_TL_INVAL | 参数错误或不相容。 |
MCO_E_TL_NOT_ITERABLE | 创建日志时没有 flag 。MCO_TRANSLOG_ITERABLE |
MCO_E_TL_LOG_NOT_OPENED | 无法打开日志文件。 |
MCO_E_TL_IO_ERROR | 磁盘 IO 错误。 |
MCO_E_VERS_MISMATCH | 日志文件与运行时设置或数据库版本不兼容。 |
MCO_E_TL_INVFORMAT | 日志文件或 pipe 数据已损坏。 |
MCO_S_TL_INVDATA | 日志文件或管道未完全读取,但找到了一些事务,或者未找到文件结束。 |
MCO_E_TL_PIPE_USED | 管道已由另一个 .mco_trans_iterate() |
MCO_E_TL_PIPE_TERM | 日志记录在上次调用 时终止,但未由 writer 重新初始化。mco_trans_iterate() |
MCO_E_TL_PIPE_LOST | 在调用此函数之前,与管道的所有连接都已关闭,并且其数据已丢失。 |
MCO_E_NOMEM | 内存不足,无法完成操作。增加 的值。mem_size |