VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

事务管理接口

DCITransStart

功能描述

开启与指定服务上下文关联的事务。

功能说明

该调用用来开启与指定服务上下文关联的事务。如果应用程序已经开启一个事物,则不会在开启事务,如果程序制定事务的属性(隔离级别、读写)等属性,则设置相应的属性。DCITransStart在一个只读事务块的插入数据会报错。

接口信息

函数/过程

DCITransStart语法如下:

sword DCITransStart( 
            DCISvcCtx    *svchp,
            DCIError     *errhp,
            ub4           flags 
);

参数的解释如下:

  • svchp(IN):服务上下文句柄

  • errhp(IN):错误句柄,可以通过DCIErrorGet()诊断错误信息

  • flag(IN):可以指定多个值。默认情况下,启动读/写事务。标志值为:

    • DCI_TRANS_NEW—启动新的事务分支。

    • DCI_TRANS_TIGHT—明确指定紧密耦合的分支。(不支持)

    • DCI_TRANS_LOOSE—指定松散耦合的分支。(不支持)

    • DCI_TRANS_RESUME—恢复现有事务分支。(不支持)

    • DCI_TRANS_READONLY—启动只读事务。

    • DCI_TRANS_SERIALIZABLE—启动可序列化事务。

    • DCI_TRANS_SEARABLE—在每次调用后分离事务。(不支持)

外部接口

无。

其它说明

无。

DCITransCommit

功能描述

提交与指定服务上下文关联的事务。

功能说明

该调用用来提交与指定服务上下文关联的事务。如果应用程序定义了多个事务,则此函数对当前与服务上下文关联的事务进行操作。如果应用程序仅使用在进行数据库更改时创建的隐式本地事务,则提交该隐式事务。

接口信息

函数/过程

DCITransCommit 语法如下:

sword DCITransCommit ( 
            DCISvcCtx    *svchp,
            DCIError     *errhp,
            ub4           flags 
);

参数的解释如下:

  • svchp(IN):服务上下文句柄。

  • errhp(IN):错误句柄,可以通过DCIErrorGet()诊断错误信息。

  • flag(IN):用于标志全局事务中单阶段的提交优化。

    • DCI_DEFAULT: 如果事务是非分布式的,flags参数被忽略,并且DCI_DEFAULT可以作为值传递。

    • DCI_TRANS_TWOPHASE: 管理全局事务的DCI应用程序应将此值传递给flags参数以进行两阶段提交。默认为一阶段提交。

    • DCI_TRANS_WRITEIMMED: I/O由LGWz(后台的日志写入进程)发起,将(内存中的)重做缓冲区写入在线重做日志。IMMEDIATE意味着事务的重做缓冲区通过向 LGWR 发送消息立即写出,LGWR 立即处理该消息。

    • DCI_TRANS_WRITEBATCH: LGWR不发出I/O来将事务的内存中重做缓冲区写入在线重做日志。BATCH意味着LGWR在为整个批次启动I/O之前对重做缓冲区进行批处理。BATCH当您同时指定和时会发生错误IMMEDIATE。IMMEDIATE是默认值。

    • DCI_TRANS_WRITEWAIT: 请求LGWR将提交的重做写入在线重做日志,并且提交等待重做缓冲区写入在线重做日志。WAIT表示直到事务对应的内存重做缓冲区写入(持久)在线重做日志后,提交才会返回。

    • DCI_TRANS_WRITENOWAIT: 请求LGWR将提交的重做写入在线重做日志,但提交返回而不等待缓冲区写入在线重做日志。NOWAIT表示在内存中的重做缓冲区刷新到在线重做日志之前提交返回给用户。WAIT当您同时指定和时会发生错误NOWAIT。WAIT是默认值。使用DCI_TRANS_WRITENOWAIT时,事务可能会在关机、强制启动以及任何实例或节点故障时无声息的丢失。

外部接口

无。

其它说明

无。

DCITransRollback

功能描述

回滚当前事务。

功能说明

当前事务(定义为自上次DCITransCommit()或DCISessionBegin()之后执行的语句)被回滚。如果应用程序在对象模式下运行,则该事务的对象缓存中修改或更新的对象也将被回滚。尝试回滚当前不活跃的全局事务会导致错误。

接口信息

函数/过程

DCITransRollback 语法如下:

sword DCITransRollback ( 
            void         *svchp, 
            DCIError     *errhp,
            ub4           flags  
)

参数的解释如下:

  • svchp(IN):服务上下文句柄。

  • errhp(IN):错误句柄,可以通过DCIErrorGet()诊断错误信息。

  • flags(IN):必须为DCI_DEFAULT参数传递一个值。

外部接口

无。

其它说明

无。