lr_set_transaction_instance_status()
设置事务实例的状态。
int lr_set_transaction_instance_status(int status,longtrans_handle);
参数说明:
status:用于通过,失败或停止的交易状态常量之一,自动状态不适用。
trans_handle:事务实例的句柄
lr_set_transaction_instance_status函数使用事务句柄trans_handle设置打开事务的状态。该句柄由lr_start_transaction_instance返回。
此事务的lr_end_transaction_instance语句必须通过将事务状态为auto作为其状态参数来使用自动状态分配。
事务的状态在lr_end_transaction_instance的status参数中定义。如果此状态为LR_AUTO,则会自动分配该值。默认情况下,此值为LR_PASS,表示成功的事务。 lr_set_transaction_instance_status将此默认值更改为status。
有关事务实例的更多信息,请参阅lr_start_transaction_instance。
示例:lr_set_transaction_instance_status
在以下示例中,事务实例“撤销”测量从银行服务器执行提款所需的时间。当服务器API调用bank_withdraw()完成时,它向状态变量返回一个值,并且事务实例完成。
如果提取失败,则lr_set_transaction_instance_status将事务的默认状态更改为LR_FAIL。 LR_FAIL状态自动分配给lr_end_transaction_instance语句中的LR_AUTO标志,因为它使用LR_AUTO标志。
long id;
int status;
int amount_overdrawn = get_amount_overdrawn(); / *调用服务器API * /
while(amount_overdrawn <LIMIT){
/ *通知事务正在启动* /
id = lr_start_transaction_instance(“withdraw”,0);
status = bank_withdraw(500); / *调用服务器API * /
/ *使用操作结果设置事务状态 - 通过或失败* /
if(status!= 0)/ *提款失败* /
lr_set_transaction_instance_status(LR_FAIL,id);
lr_end_transaction_instance(id,LR_AUTO);
amount_overdrawn = get_amount_overdrawn();
}}