lr_set_transaction_status()
设置打开事务的默认结束状态。
int lr_set_transaction_status(int status);
参数说明:
status:传递,失败或停止的交易状态常量之一,自动状态不适用。
lr_set_transaction_status函数设置当前打开的事务在其lr_end_transaction语句中具有LR_AUTO的事务的状态。
事务的状态在lr_end_transaction的status参数中定义。如果此状态为LR_AUTO,则会自动分配该值。默认情况下,此值为LR_PASS,表示成功的事务。lr_set_transaction_status将此默认值更改为status。
示例:lr_set_transaction_status
在以下示例中,事务t1的状态更改为失败状态,因为发生了常规错误。
请注意,未定义为LR_AUTO的事务t2的退出状态不受对lr_set_transaction_status的调用的影响,并保持为LR_PASS。
if(event == GENERAL_ERROR)
lr_set_transaction_status(LR_FAIL);
lr_end_transaction(“t1”,LR_AUTO);
lr_end_transaction(“t2”,LR_PASS);
lr_end_transaction_instance()
标记事务实例的结束。
lr_end_transaction_instance(longparent_handle,int status);
参数说明:
parent_handle:在创建实例时由lr_start_transaction_instance返回的句柄。
status:交易状态。
lr_end_transaction_instance函数标记事务实例的结尾,并记录执行事务所花费的时间。要指示要分析的事务实例,请在事务之前放置lr_start_transaction_instance函数,并在事务之后放置lr_end_transaction_instance函数。
您可以手动设置事务实例的状态,也可以允许脚本自动检测。要手动设置状态,请在脚本代码(参见示例)中执行手动检查,以评估函数的返回代码。对于“成功”返回码,将事务状态设置为LR_PASS。对于“失败”返回码,将状态设置为LR_FAIL。对于“已中止”的返回代码,将状态设置为LR_STOP。
要指示脚本自动检测状态,请指定LR_AUTO。脚本返回检测到的。
示例:lr_end_transaction_instance
在以下示例中,lr_start_transaction度量从银行服务器执行提款的事务的时间。一旦服务器API调用完成并向状态变量返回一个值,事务就完成了。然而,测试还希望验证如果客户超过提款限制,不成功提款交易将花费多长时间。为此目的创建事务“撤销”的实例。lr_end_transaction_instance标记此事务实例的结束。
long id;
int status;
int amount_overdrawn = get_amount_overdrawn(); / *调用服务器API * /
while(amount_overdrawn <LIMIT){
/ *通知事务正在启动* /
id = lr_start_transaction(“withdraw”);
status = bank_withdraw(500); / *调用服务器API * /
/ *结束事务与操作结果 - 通过或失败* /
if(status == 0)
lr_end_transaction(“withdraw”,LR_PASS);
else
lr_end_transaction(“withdraw”,LR_FAIL);
amount_overdrawn = get_amount_overdrawn();
}}
/ *由于已达到透支限额,客户无法再提款。尝试提取反正记录服务器响应时间* /
id = lr_start_transaction_instance(“withdraw”,0);
status = bank_withdraw(500); / *这个调用会失败,但我们想计时* /
lr_end_transaction_instance(id,LR_PASS);