mco_trans_set_gc_policy
为当前连接设置垃圾回收策略。
此函数为给定的会话(连接)设置垃圾回收策略。应在创建数据库会话(连接)时且在启动任何事务之前仅调用一次。此外,除非使用默认策略(MCO_GC_DISABLED
策略除外),否则所有会话(连接)都应显式设置相同的策略。 MCO_GC_DISABLED
策略旨在用于将垃圾回收限制在专用会话(连接)中。在这种情况下,工作会话将使用此策略,而具有 MCO_GC_ALWAYS
策略的专用会话(或多个会话)将在单独的线程中进行垃圾回收。 默认策略为 MCO_GC_ON_MODIFICATION
。
MCO_GC_POLICY mco_trans_set_gc_policy(
/*IN*/ mco_db_h db,
/*IN*/ MCO_GC_POLICY new_policy
);
参数
db
mco_db_h
由 mco_db_connect()
建立的数据库句柄。
new_policy
int
要设定的政策必须是以下其中之一:
- MCO_GC_DISABLED:垃圾回收已禁用。
- MCO_GC_SELF_VERSIONS:每个会话将仅执行自己的垃圾清理。当每个会话(连接)都使用其自己的类(表)子集时,此策略可能非常有效。
- MCO_GC_ON_MODIFICATION:任何 session 中的读写事务都将触发所有 会话(连接) 中的垃圾回收。
- MCO_GC_ALWAYS: 就像 一样,但事务也会触发垃圾回收
MCO_GC_ON_MODIFICATION``READ_ONLY
。
返回
MCO_GC_POLICY
之前的垃圾回收政策。
示例
/* 应用程序代码片段 */
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;
...
rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params );
if ( MCO_S_OK != rc )
{
rc = mco_db_connect( dbname, &db );
...
mco_trans_set_gc_policy( db, MCO_GC_SELF_VERSIONS);
...
}
...
}
文件
头文件:
mco.h
源文件:
mursiw.c
库:
libmcotexcl.a
头文件:
mco.h
源文件:
mursiw.c
库:
libmcotmursiw.a
头文件:
mco.h
源文件:
mvcc.c
库:
libmcotmvcc.a