lr_resume_transaction_instance()
恢复在脚本中报告事务实例数据
void lr_resume_trans_instance(long trans_handle);
参数说明:
trans_handle:lr_start_transaction_instance返回的事务实例标识
lr_resume_transaction_instance函数恢复由lr_stop_transaction_instance暂停的脚本中的事务数据的报告。在调用lr_stop_transaction_instance之后,由“get”事务函数返回的统计信息仅反映该调用的数据,直到调用此函数。
但是,数据收集不会中断。在调用lr_resume_transaction_instance之后,“get”函数返回事务开始后的所有数据。此外,分析测试时的最终结果将反映总值,包括事务实例停止和恢复之间的时间段。
如果未调用lr_resume_transaction_instance,则最终结果仅反映到调用lr_stop_transaction_instance之前的统计信息。
parent_handle是从对创建实例的lr_start_transaction_instance的调用返回的值。
lr_stop_transaction_instance和lr_resume_transaction_instance可用于有条件地收集有关开始或所有事务的信息。
请注意,在调用lr_stop_transaction_instance时,您将无法区分迭代之间的分析,也可能无法区分迭代。
示例:lr_resume_transaction_instance
在以下示例中,lr_stop_transaction_instance和lr_resume_transaction_instance显示停止和恢复实例的效果。
Action()
{
int i;
int iteration = 1000;
char aStr [100];
long trans_handle;
/ *句柄参数为零表示
没有父事务* /
trans_handle = lr_start_transaction_instance(“Stop&Start”,0);
/ *做业务流程的一部分。代表
这里通过循环来保证一些
时间流逝。 * /
for(i = 0; i<iteration; ++ i){
sprintf(aStr,“%d”,i);
//lr_log_message(“%d”,i);
}}
/ *输出到这一点的持续时间
与事务实例活动* /
lr_output_message(“First time =%f”,
lr_get_trans_instance_duration(trans_handle));
//停止事务实例
lr_stop_transaction_instance(trans_handle);
/ *输出到这一点的持续时间
与事务停止* /
lr_output_message(“停止后立即=%f”,
lr_get_trans_instance_duration(trans_handle));
//确保一些时间过去
for(i = 0; i<iteration; ++ i){
sprintf(aStr,“%d”,i);
// lr_log_message(“%d”,i);
}}
/ *输出到这一点的持续时间
与事务实例仍然停止,但是
更多的时间。注意时间是一样的。
在事务处理时在循环中花费的时间
实例被停止不报告。 * /
lr_output_message(“停止和循环=%f”后,
lr_get_trans_instance_duration(trans_handle));
//恢复事务实例
lr_resume_transaction_instance(trans_handle);
/ *请注意,随着实例恢复,
自从开始以来所有的时间都过去了
报告,包括花在的时间
循环。 * /
lr_output_message(“恢复时间=%f”后,
lr_get_trans_instance_duration(trans_handle));
//将时间添加到持续时间
for(i = 0; i<iteration; ++ i){
sprintf(aStr,“%d”,i);
// lr_log_message(“%d”,i);
}}
/ *报告的总时间* /
lr_output_message(“resume resume and loop =%f”后,
lr_get_trans_instance_duration(trans_handle));
//结束事务实例
lr_end_transaction_instance(trans_handle,LR_AUTO);
return 0;
}}
Action.c(14):通知:事务停止和开始开始。
Action.c(26):第一次= 0.609375
Action.c(31):通知:事务停止和开始停止。
Action.c(36):停止后立即= 0.609375
Action.c(50):停止和循环后= 0.609375
Action.c(54):通知:事务停止和启动恢复。
Action.c(60):恢复时间= 1.250000
Action.c(70):resume和循环后= 1.859375
Action.c(75):通知:事务停止和开始以通过状态结束(持续时间:1.8594)。