Dynamically enabling ACS routine tracing - syncsort_allocation_control_center - Latest

Syncsort™ Storage Management Sms/Debug User Guide

Product type
Software
Portfolio
Integrate
Product family
Syncsort™ software
Product
Syncsort™ Storage Management > Syncsort™ Allocation Control Center
Version
Latest
ft:locale
en-US
Product name
Syncsort Storage Management
ft:title
Syncsort™ Storage Management Sms/Debug User Guide
Copyright
1991
First publish date
2025
ft:lastEdition
2025-12-05
ft:lastPublication
2025-12-05T10:27:31.692000
L1_Product_Gateway
Integrate
L2_Product_Segment
IBM Infrastructure
L3_Product_Brand
Precisely Syncsort
L4_Investment_Segment
Mainframe
L5_Product_Group
Mainframe Storage Optimization
L6_Product_Name
Syncsort Storage Management

ACS routine tracing can also be enabled by setting variables during SMS/Debug rule processing. This eliminates the need to specify the SMSDEBUG operand in the JCL or TSOALLOCATE statement, or on the SMSDEBUG DD statement for IDCAMS DEFINEs. This may be useful if JCL changes cannot be made easily or if ACS routine tracing is needed for a dataset that will be allocated by a started task such as DB2 or DFSMShsm. However, the preferred method is to code an //SMSDEBUG DD DUMMY statement in the appropriate step and use the SMSDBSEL= selection filters on the JOB or EXEC statement.

To enable dynamic ACS routine tracing, both the SMSACS_TRACE and the PRE_SMSACS environments must be active. That is, there must be DEFENV statements present in the rules such as:

DEFENV PRE_SMSACS MODE(ACTIVE) RULES(ALWAYS)
DEFENV SMSACS_TRACE MODE(ACTIVE)    

In addition, the rules must set the value of the &SD_ACSTRACE variable to YES.

  • If the contents of the ACS read-only variables are to be displayed prior to ACS routine tracing, set the value of the &SD_ACSTRACE_B variable to YES.
  • If the ACS read-write variables (the data class, storage class, management class, and storage group) are to be displayed following the trace, set the value of the &SD_ACSTRACE_A variable to YES.

In the following example, the DYNTRACE rule displays the ACS read-only and read-write variables and the ACS routine trace. The second IF statement prevents any further processing in the PRE_SMSACS environment. Although the &SD_ACSTRACE variables are set to YES in the PRE_SMSACS environment, the actual trace output is produced at a later point in time, during the SMSACS_TRACE environment.

DEFRULE DYNTRACE
IF &ENV = PRE_SMSACS
  &DSNAME = MY.INTER.ESTING.DATA.SET
  THEN  SET &SD_ACSTRACE = YES        /* TURN ON ACS ROUTINE TRACING */
        SET &SD_ACSTRACE_B = YES      /* DUMP ACS R/O VARIABLES BEFORE */
        SET &SD_ACSTRACE_A = YES      /* DUMP ACS R/W VARIABLES AFTER */
IF &ENV = PRE_SMSACS THEN EXIT  /* NO MORE SMSACS_TRACE PROCESSING */

Using the DEFLIST SELDSN statement

SMS/Debug also examines the SMSDEBUG rules language for a special DEFLIST entry named SELDSN that contains a list of datasets that will be traced by the product. For example, the following list requests tracing for TOM.DSNAME and all TOM.X37* datasets.

DEFLIST SELDSN (TOM.DSNAME,TOM.X37*) TYPE(SMSDEBUG)    

If the current dataset name matches an entry in the list, then SMSDEBUG will be activated as if the SMSDEBUG=YES parameter was specified on the DD statement. This facility is especially useful for tracing DD statements in started tasks that would not normally allow JCL modification (e.g. DB2).