lr_start_sub_transaction()
启动由其父级名称指定的子事务。
int lr_start_sub_transaction(const char *sub_transaction,const char * parent_transaction);
参数说明:
sub_transaction:子事务的名称
parent_transaction:嵌套子事务的父事务的名称。
lr_start_sub_transaction函数标记子事务的开始。要标记子事务的结束,请使用lr_end_sub_transaction。您可以在子事务操作之前和之后立即插入这些函数。
子事务用于隔离业务流程的部分。例如,子交易“electric_purchases”可以嵌套在较大交易“购买”内。交易“购买”是父交易,并且“电子购买”子交易。
多个子事务可以嵌套在父事务中。子事务也可以是较小子事务的父代。
事务或子事务的持续时间是其开始和结束之间的所有步骤的持续时间的总和,包括子事务中包括的步骤。
每个lr_start_sub_transaction语句必须与脚本中的lr_end_sub_transaction语句相匹配,否则它将被解释为非法命令。
注意:不要在事务或子事务名称中使用句点字符(.)。句点字符分隔事务和子事务。在分析中,具有句点的事务名称将被解释为两个事务。
lr_end_sub_transaction()
标记子事务的结束。
int lr_end_sub_transaction(const char *sub_transaction,int status);
参数说明:
sub_transaction:表示现有子事务的名称的字符串。
Status:事务状态。
lr_end_sub_transaction函数标记子事务的结束。 要标记子事务的开始,请使用lr_start_sub_transaction函数。 您可以在子事务步骤之前和之后立即插入这些函数。
多个子事务可以嵌套在父事务中,但每个lr_end_sub_transaction语句必须匹配lr_start_sub_transaction语句,否则它将被解释为非法命令。
示例:lr_end_sub_transaction
在以下示例中,称为“electric_purchases”的子交易执行六个电子项目的购买。如果此子事务成功,则事务状态将记录为LR_AUTO。 LR_AUTO的默认值为LR_PASS。如果购买失败,该值设置为LR_FAIL。
/ *通知事务正在启动* /
lr_start_transaction(“purchases”);
/ *将事务细分为较小的事务* /
lr_start_sub_transaction(“electrical_purchases”,“purchases”);
status = purchase_electrical_items(6); / *调用Server API* /
/ *结束事务与操作结果 - 通过或失败* /
if(status == 0)
lr_end_sub_transaction(“electrical_purchases”,LR_AUTO);
else
lr_end_sub_transaction(“electrical_purchases”,LR_FAIL);