%ARMJOIN Macro

Reads the six SAS data sets that are created by the %ARMPROC macro, and creates SAS data sets and SQL views that contain common information about applications and transactions.
Category: ARM Postprocessing Macro
Restriction: Do not use with ARMAGENT=LOG4SAS.

Syntax

%ARMJOIN (<option-1 <, ...option-n>> );

Optional Arguments

LIBIN=libref
is the libref for the SAS library that contains the six SAS data sets that are created by the %ARMPROC macro.
Default:WORK
LIBOUT=libref
is the libref for the SAS library that contains the application and transaction data sets.
Default:WORK
Restriction:If a Read-only library is specified in the LIBOUT= option, an error message is written to the ARM log and processing is stopped.
TXNDS=YES | NO
specifies whether the transaction data sets are to be created.
Default:YES
UPDTDS=YES | NO
specifies whether the update data sets are to be created.
Default:YES

Details

The %ARMJOIN macro reads the six SAS data sets that are created by the %ARMPROC macro. It merges the information from those data sets to create data sets and SAS views for easier reporting of ARM data.
Note: The %ARMJOIN macro does not work from SCL. It must be run in a DATA step.
The input is the SAS data sets from the %ARMPROC macro. You must run the %ARMPROC macro before running the %ARMJOIN macro.
The output is a single SAS library that contains the following:
  • information about applications (APP)
  • a DATA step view that contains information about all start handles, including parent correlator class and parent start handles (TXNVIEW)
  • a SAS view that contains information about all update transactions (UPDTVIEW)
  • one transaction data set for each application
  • one update data set for each application
The application data set is named APP and contains one observation for every application that is found in the input data. Each observation contains information such as application name, user ID, transaction counts, average application response time, and so on. In addition, each observation contains a numeric variable APPNO that is the identifier of the related transaction or update data set that contains more detailed transaction information.
The transaction data sets are named TXN1, TXN2, TXN3, and so on. Each data set corresponds to a single application, and each observation represents a single ARM transaction containing start and stop times, elapsed times, and CPU time.
The TXNVIEW view joins all transaction data sets into a single data set. Start handle elapsed time and CPU time are calculated from the start and stop transactions. If the start handle has a parent start handle, then the class ID and start handle of the parent are included using the variables PARCLS= and PARHDL=. If no parent is specified, these variables contain missing values.
The update data sets are named UPDT1, UPDT2, UPDT3, and so on. Each data set corresponds to a single application, and contains multiple observations for each ARM transaction. Each observation contains the ARM call datetime, an ARM call sequence ID, and, if applicable, elapsed time, CPU time, and update data.
The UPDTVIEW view joins all update data sets into a single data set.
The transaction data sets are easier to use for analyzing individual ARM transactions because all information about a transaction is represented in one observation. However, the transaction data sets do not contain any information from %ARMUPDT macros.
The update data sets are similar to the transaction data sets. However, information about a single transaction is spread over several observations. Update data sets contain logged data buffer information from all %ARMUPDT macros.

Examples

Example 1: Basic Usage

filename ARMLOG 'd:\armlog';
  %armproc();
  %armjoin();

Example 2: Defining a Permanent Library to Read %ARMPROC Macro Output and Store %ARMJOIN Macro Views

libname user 'c:\arm\user';
    %armjoin(libin=user,libout=user);
run;