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;
}}