mco_translog_terminate
此函数在启用日志记录且管道已满时终止事务日志记录。MCO_TRANSLOG_PIPE
有关概述,请参阅事务日志记录应用页面。
原型
MCO_RET mco_translog_terminate( mco_db_h db )
参数
db | 数据库连接句柄 |
描述
当启用并且管道已满时,应调用此函数以终止事务日志记录,从而导致事务阻塞,因为管道中没有空间。如果 Pipe Reader 出现问题(例如,它崩溃),就会发生这种情况。在这种情况下,不能使用 mco_translog_stop(),
因为它会在管道中写入 end-of-log marker。logging MCO_TRANSLOG_PIPE``MCO_READ_WRITE
如果未启用,则此函数与 mco_translog_stop()
相同。MCO_TRANSLOG_PIPE
返回
MCO_S_OK | TL 运行时已成功初始化。 |
---|---|
MCO_E_TL_NOT_STARTED | 事务日志记录未启动。 |
MCO_E_TL_IO_ERROR | 磁盘 IO 错误。 |
MCO_E_TL_PIPE_LOST | 与管道的所有连接都已关闭,其数据已丢失。 |
MCO_E_TL_PIPE_TERM | Reader 在日志完成之前从函数返回。它通过返回 callback 函数以外的值来终止日志记录。mco_translog_iterate()``MCO_S_OK |
注意:调用 function 后,日志记录过程将始终停止 - 即使发生错误。 mco_translog_terminate()
mco_translog_terminate()`关闭管道,并导致读取器在调用时退出。该函数还会正常停止日志记录,但读取器将继续使用管道,直到它读取了管道内容的其余部分。使用 时,编写器无法控制此活动。`mco_translog_stop()``mco_translog_stop()
换句话说,终止日志记录,与 writer 端相同,但 reader 端立即从函数返回 error 。mco_translog_terminate()`` mco_translog_stop()``mco_translog_iterate()``MCO_E_TL_PIPE_TERM