mco_trans_checkpoint
接口适用于实时数据库 RT 。
设置事务检查点。
此函数将更新后的对象插入索引。其行为取决于所使用的事务管理器。
- 使用悲观事务管理器 MURSIW 时,更新后的对象会从索引中移除,在调用检查点(或提交)之前,无法使用旧键定位它们。
- 使用乐观事务管理器 MVCC 时,会创建对象的工作副本,但不会移除旧版本,并且可以使用键的原始值(或通过索引迭代)访问此副本。在调用检查点之后,只能使用新键定位对象。
MCO_RET mco_trans_checkpoint(
/*IN*/ mco_trans_h t
);
参数
t
mco_trans_h
由 mco_trans_start()
函数返回的 mco_trans_h
事务句柄。
返回
MCO_S_OK
已成功创建数据库。
MCO_E_TRANSACT
事务处于错误状态。
示例
/* 应用程序代码片段 */
const char * dbname = "SimpleDb";
int main(int argc, char* argv[])
{
mco_db_h db;
MCO_RET rc;
mco_device_t dev;
mco_db_params_t db_params;
mco_trans_h t;
...
rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params );
if ( MCO_S_OK != rc )
{
rc = mco_db_connect( dbname, &db );
...
rc = mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
if ( MCO_S_OK == rc )
{
...
rc = mco_trans_checkpoint( t );
...
rc = mco_trans_commit( t );
...
}
}
...
}
文件
- 头文件:
mco.h
- 源文件:
mcoabst.c
- 库:
libmcolib.a