VastbaseG100

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

Menu

事务管理接口

OCITransStart

功能描述

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

功能说明

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

OCITransStart在一个只读事务块的插入数据会报错。

接口信息

函数/过程

OCITransStart语法如下:

sword OCITransStart( 
OCISvcCtx    *svchp,
                        OCIError     *errhp,
                        ub4           flags 
);

参数的解释如下:

  • svchp(IN):服务上下文句柄。
  • errhp(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • flag(IN):可以指定多个值。默认情况下,启动读/写事务。标志值为:
    • OCI_TRANS_NEW:启动新的事务分支。
    • OCI_TRANS_TIGHT:明确指定紧密耦合的分支。(不支持)
    • OCI_TRANS_LOOSE:指定松散耦合的分支。(不支持)
    • OCI_TRANS_RESUME:恢复现有事务分支。(不支持)
    • OCI_TRANS_READONLY:启动只读事务。
    • OCI_TRANS_SERIALIZABLE:启动可序列化事务。
    • OCI_TRANS_SEARABLE:在每次调用后分离事务。(不支持)

其他说明

OCITransCommit

功能描述

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

功能说明

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

接口信息

函数/过程

OCITransCommit 语法如下:

sword OCITransCommit ( 
OCISvcCtx    *svchp,
                        OCIError     *errhp,
                        ub4           flags 
);

参数的解释如下:

  • svchp(IN):服务上下文句柄
  • errhp(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息
  • flag(IN):用于标志全局事务中单阶段的提交优化。
    • OCI_DEFAULT:如果事务是非分布式的,flags 参数被忽略,并且OCI_DEFAULT可以作为值传递。
    • OCI_TRANS_TWOPHASE:管理全局事务的 OCI 应用程序应将此值传递给 flags 参数以进行两阶段提交。默认为一阶段提交。
    • OCI_TRANS_WRITEIMMED:I/O由 LGWR(后台的日志写入进程)发起,将(内存中的)重做缓冲区写入在线重做日志。IMMEDIATE意味着事务的重做缓冲区通过向 LGWR 发送消息立即写出,LGWR 立即处理该消息。
    • OCI_TRANS_WRITEBATCH:LGWR 不发出 I/O 来将事务的内存中重做缓冲区写入在线重做日志。BATCH意味着 LGWR 在为整个批次启动 I/O 之前对重做缓冲区进行批处理。BATCH当您同时指定和时会发生错误IMMEDIATE。IMMEDIATE是默认值。
    • OCI_TRANS_WRITEWAIT:请求 LGWR 将提交的重做写入在线重做日志,并且提交等待重做缓冲区写入在线重做日志。WAIT表示直到事务对应的内存重做缓冲区写入(持久)在线重做日志后,提交才会返回。
    • OCI_TRANS_WRITENOWAIT:请求 LGWR 将提交的重做写入在线重做日志,但提交返回而不等待缓冲区写入在线重做日志。NOWAIT表示在内存中的重做缓冲区刷新到在线重做日志之前提交返回给用户。WAIT当您同时指定和时会发生错误NOWAIT。WAIT是默认值。使用OCI_TRANS_WRITENOWAIT时,事务可能会在关机、强制启动以及任何实例或节点故障时无声息的丢失。

其他说明

OCITransRollback

功能描述

回滚当前事务。

功能说明

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

接口信息

函数/过程

OCITransRollback 语法如下:

sword OCITransRollback ( 
void         *svchp, 
                         OCIError     *errhp,
                         ub4           flags  
)

参数的解释如下:

  • svchp(IN):服务上下文句柄。
  • errhp(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • flags(IN):必须为OCI_DEFAULT参数传递一个值。

其他说明

OCITransForget

功能描述

忘记分阶段提交的事务。

功能说明

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

接口信息

函数/过程

OCITransForget语法如下:

sword OCITransForget( 
OCISvcCtx    *svchp,
                        OCIError     *errhp,
                        ub4           flags 
);

参数的解释如下:

  • svchp(IN):服务上下文句柄。
  • errhp(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • flag(IN):必须为OCI_DEFAULT参数传递一个值。

其他说明

OCITransPrepare

功能描述

准备当前事务,把当前事务分阶段提交,当前事务只能是第一阶段准备。

功能说明

准备当前事务为分阶段提交,此为第一阶段准备提交或回滚事务,后续进行提交或回滚。

接口信息

函数/过程

OCITransPrepare语法如下:

sword OCITransPrepare( 
void         *svchp, 
                         OCIError     *errhp,
                         ub4           flags  
)

参数的解释如下:

  • svchp(IN):服务上下文句柄。
  • errhp(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • flags(IN):必须为OCI_DEFAULT参数传递一个值。

其他说明