Defining Correlators in ARM Macros


Defining Correlators in ARM Macros

A primary or parent transaction can contain several component or child transactions nested within them. Child transactions can also contain other child transactions. It can be very useful to know how much each child transaction contributes to the total response time of the parent transaction. If a failure occurs within a parent transaction, knowing which child transaction contains the failure is also useful information. Correlators are used to track these parent and child transactions.

The use of correlators requires that multiple transaction start handles be active simultaneously . This requires the use of the CORR= and SHDLVAR= options in the %ARMSTRT macro. You define each parent and child transaction in the %ARMSTRT macro using the SHDLVAR= option. For each child transaction, you must also define the parent transaction using the PARNTVAR= option.

Each child transaction is started after the parent transaction starts. Parent or child transactions can be of the same or different transaction classes. You define the transaction classes in the %ARMGTID macro using the TXNIDVAR= option.

Both parent and child transactions can have updates specified in the %ARMUPDT macro. User metrics can be specified for both transaction types in the %ARMSTRT macro if the user metrics were defined in the corresponding transaction class in the %ARMGTID macro.

All child transactions must stop in the %ARMSTOP macro before the parent transaction stops. The sibling (multiple child) transactions can be stopped in any order.

For example, the parent transaction 100 consists of child transactions 110, 120, and 130, each performing a different part of the unit of work represented by the parent transaction 100. The child transaction 120 contains child transactions 121 and 122. Transaction 200 has no child transactions. Here is a code fragment used to create these relationships:

 %arminit(appname='Application",appidvar=appid);  %armgtid(appidvar=appid,txnname='TranCls',txndet='Transaction Class Def',           txnidvar=txnid);  %armstrt(txnidvar=txnid,corr=1,shdlvar=HDL100);  %armstrt(txnidvar=txnid,corr=0,shdlvar=HDL200<,...user metrics>);  %armstrt(txnidvar=txnid,corr=2,shldvar=HDL110,parntvar=HDL100);  %armstrt(txnidvar=txnid,corr=3,shldvar=HDL120,parntvar=HDL100);  %armstrt(txnidvar=txnid,corr=2,shldvar=HDL130,parntvar=HDL100);  %armstrt(txnidvar=txnid,corr=2,shldvar=HDL121,parntvar=HDL120);  %armstrt(txnidvar=txnid,corr=2,shldvar=HDL122,parntvar=HDL120);  ...  %armstop(shdlvar=HDL200);  %armstop(shdlvar=HDL121);  %armstop(shdlvar=HDL122);  %armstop(shdlvar=HDL120);  %armstop(shdlvar=HDL130);  %armstop(shdlvar=HDL110);  %armstop(shdlvar=HDL100); 



SAS 9.1 Language Reference Dictionary, Volumes 1, 2 and 3
SAS 9.1 Language Reference Dictionary, Volumes 1, 2 and 3
ISBN: N/A
EAN: N/A
Year: 2004
Pages: 704

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net