lr.start_sub_transaction

Starts a sub-transaction specified by its parent's name.

int lr.start_sub_transaction( String sub_transaction, String parent_transaction  );
Transaction FunctionsJava Syntax

Arguments

NameComments
sub_transactionThe name of the sub-transaction
parent_transactionThe name of the parent transaction in which the sub-transaction is nested.

The lr.start_sub_transaction function marks the beginning of a sub-transaction. To mark the end of the sub-transaction, use lr.end_sub_transaction. You insert these functions immediately before and after the sub-transaction actions.

Sub-transactions are used for isolating parts of a business process. For example, a sub-transaction "electrical_purchases" may be nested within the larger transaction "purchases." The transaction "purchases" is the parent transaction and "electrical_purchases" the sub-transaction.

Multiple sub-transactions can be nested within a parent transaction. A sub-transaction may also be a parent to a smaller sub–transaction.

The duration of a transaction or sub-transaction is the sum of the durations of all steps between its start and end, including the steps that are included in sub-transactions.

Each lr.start_sub_transaction statement must be matched with an lr.end_sub_transaction statement within the script or it will be interpreted as an illegal command.

Note: For information on allowed characters and maximum length for transaction names, see Transaction guidelines in the Virtual User Generator Help Center.

Return Values

This function returns 0 if it succeeds. It returns -1 if the transaction name is illegal or if there is no prior call to lr.start_transaction with a transaction of the same name.

Parameterization

All string arguments (char type) can be parameterized using standard parameterization.

Example

In the following example,lr.start_sub_transaction and lr.end_sub_transaction create a transaction that performs purchases of six electrical items. The parent transaction is purchases and the sub-transaction is electrical_purchases.

lr.start_transaction("purchases"); 

/* Breakdown the transaction into a smaller transaction */ 
lr.start_sub_transaction("electrical_purchases", "purchases");

/* call to Server API */  
int status = purchase_electrical_items(6); 

/* End transaction with operation result - pass or fail */ 
if (status == 0) 
    lr.end_sub_transaction("electrical_purchases", lr.PASS); 
else 
    lr.end_sub_transaction("electrical_purchases", lr.FAIL); 
lr.end_transaction("purchases", lr.AUTO);