lr_get_trans_instance_duration()
返回事务实例的持续时间。
double lr_get_trans_instance_duration(long trans_handle);
参数说明:
trans_handle:事务句柄。
lr_get_trans_instance_duration函数以秒为单位返回打开的事务实例的持续时间,直到此时为止。 使用此函数可确定事务结束前的总事务时间。
此函数和lr_get_transaction_duration之间的区别在于,您可以通过其句柄指定事务实例。 使用lr_get_transaction_duration,可以按其名称指定独立事务。
trans_handle是对lr_start_transaction_instance的调用的返回值。
lr_get_trans_instance_duration仅对打开的事务返回大于零的值。
要确定其他事务统计信息,例如思考时间和浪费的时间,请使用适当的事务函数。
示例:lr_get_trans_instance_duration
在以下示例中,lr_get_trans_instance_duration函数检查父事务实例和子事务实例的持续时间,并将它们发送到Output窗口。
#include“as_web.h”
Action()
{
long parent_trans_handle;
long child_handle;
double trans_time;
int rc;
/ *启动主事务实例。
传递0作为父句柄表示
事务没有父类。
函数返回值是在其他中使用的句柄
事务实例函数。 * /
parent_trans_handle =
lr_start_transaction_instance(“ParentTransaction”,0);
/ *执行业务流程,这里用a表示
单个web_url调用。 * /
web_url(“web_url”,“URL = http://www.mercury.com”,LAST);
rc = lr_get_trans_instance_status(parent_trans_handle);
if(rc == LR_FAIL){
/ * web_url失败了事务。
没有点继续,因为
未来的电话可能也会失败。 * /
lr_end_transaction_instance(parent_trans_handle,LR_FAIL);
return ;
}}
/ *启动子事务实例。
通过从另一个返回的句柄
lr_start_transaction_instance调用为
句柄参数使这个事务a
子例程。 * /
child_handle =
lr_start_transaction_instance
(“ChildTransInstance”,parent_trans_handle);
//执行业务流程
web_url(“web_url”,
“URL = http://astra.mercuryinteractive.com”,LAST);
/ *获取子事务实例的持续时间。
传递实例句柄。
持续时间(秒)是返回值。 * /
//总时长
trans_time =
lr_get_trans_instance_duration(child_handle);
lr_output_message
(“第一个子实例时间是%lf秒。”,
trans_time);
//思考时间
trans_time =
lr_get_trans_instance_think_time(child_handle);
lr_output_message
(“第一个子实例认为时间是%lf秒。”,
trans_time);
//浪费时间
trans_time =
lr_get_trans_instance_wasted_time(child_handle);
lr_output_message
(“第一个子实例浪费时间是%lf秒。”,
trans_time);
//结束子事务实例
lr_end_transaction_instance(child_handle,LR_PASS);
/ *获取父事务实例的持续时间,
其包括子事务持续时间。 * /
trans_time =
lr_get_trans_instance_duration(parent_trans_handle);
lr_output_message
(“父事务持续时间为%lf秒”。,
trans_time);
//结束父事务实例
lr_end_transaction_instance(parent_trans_handle,
LR_PASS);
return 0;
}}