Overview - syncsort_cobol_migration_manager - syncsort_clone_center - syncsort_space_recovery_system - syncsort_scc_monitor - syncsort_simulate_2000 - syncsort_allocation_control_center - Latest

Syncsort™ Storage Management Easy/Exit 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 Easy/Exit User Guide
Copyright
2025
First publish date
1991
ft:lastEdition
2025-12-05
ft:lastPublication
2025-12-05T05:07:50.930000
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

z/OS, OS/390, and many IBM program products provide exits which give installations the ability to extend the scope and functionality of the system. Many companies gain a strate-gic advantage over their competitors through the use of customized system and product exits to provide critical features and function unavailable elsewhere. However, the use of such exits has sometimes been problematic because exits:

  • must be coded in assembler language
  • often run in an APF-authorized environment in key 0
  • sometimes required an IPL to activate or remove
  • usually require system programming specialists to develop and maintain
  • rarely have embedded recovery and debugging facilities

EASY/Exit uses proven technology

The developers have been writing highly sophisticated and functional system software products for many years. EASY/Exit makes use of technologies written for the company’s system software products to eliminate the need for assembler-language coding and allow the use of exits in a way that is much easier to use and much more reli-able. Logic implemented through EASY/Exit can be activated or removed instantly through the product’s Dynamic Install Facility (DIF). No IPL is ever required.

How does this technology work? EASY/Exit contains code which interfaces with each supported exit point. This code performs the required initialization and termination for the exit as well as establishing a recovery environment in case of errors. Most importantly, though, the code provides access to all of the exit’s input and output parameters in the form of easy-to-use variables which can be examined, set, tested, and manipulated without the need for any programming. The code established by EASY/Exit has everything except the logic your installation wants to implement, which you provide with a set of simple, flexible, IF-THEN-ELSE rules.

The IF-THEN-ELSE

Language

Your installation logic is implemented with the same IF-THEN-ELSE rules language used by all the products. EASY/Exit makes the input and output parameter informa-tion available as symbolic fields to the rules language, along with many other variables that may be useful in providing the required function.

For example, the following rule allows additional CPU time for critical jobs running over the weekend. In this example, jobs whose names begin with the characters ’PR’ (indicat-ing, perhaps, an important production job) are allowed up to 5 minutes of additional CPU time, in one-minute increments, if the job is executing on a Saturday or Sunday. During the week, the normal CPU time limitations apply.

DEFRULE MORETIME IF &ENV = JOB_CPU

&JOBNAME = PR*

&JOBSDAY = (SATURDAY, SUNDAY) &JOB_CPU_EXT LT 4

THEN SET &ADDITIONAL_TIME = 60 ISSUE WRITEMSG(USERMSG)

DEFMSG USERMSG

’WARNING: CPU TIME WAS EXTENDED BY 60 SECONDS’

The rules language can be changed at anytime, and updated with a simple DIF REFRESH command. The rules language has extensive debugging facilities, so you can run test jobs to watch the flow of logic through the rules.

Each of the chapters in this manual includes examples which provide samples of how the EASY/Exit rules can be used as well as descriptions of the variables that are unique to each environment.

Exits that Communicate

The product provides many capabilities that are far beyond the scope of a typical exit. Most hand-coded exits are used to make simple yes or no decisions and pass a return code to the caller. In contrast, EASY/Exit allows installations to make much more detailed and sophisticated decisions in the rules logic, and to dynamically build messages and records and write them:

  • to the TSO or JOB that called the exit
  • as SMF records
  • directly to specified TSO users
  • to log files allocated to the DIF started task (this can be done from environments that don’t allow I/O). These log files can be sequential or VSAM KSDS data sets.
  • to MQSeries message queues
  • to TCP/IP ports

Performance Most the products execute in very performance sensitive areas of the operating system. The code used by EASY/Exit uses the same design methodolo-gies and practices as the rest of the products. Our developers are always concerned about performance, and we have been very successful at creating products with very low overhead. In the usual case, the overhead of EASY/Exit processing should be so low as to be unmeasurable.

Activating Exits

The Dynamic Install Facility (DIF) runs as a started task. This started task installs and activates the products. During DIF initialization, the start commands found in the START00 member of the PARMLIB DD statements are executed. The following com-mands activate EASY/Exit.

START EXT START EXTHSM START EXTABARS

These commands perform product license validation, load EASY/Exit modules into the operating system, and compile the installation EXTRULES member. Note: The start commands do not activate any of the exit points.

Individual exits are typically activated with a console command: SETPROG EXIT or SETSYS Exiting). The commands used to activate the exits can be automatically issued at the time EASY/Exit is started by including them in the EXTINIT member of the data set allocated to the PARMLIB DD in the DIF started task. For example, the following state-ment would be included in EXTINIT in order to enable the IFEUTL JOB_CPU and STEP_CPU environments:

OPERCMD SETPROG EXIT,ADD,EXITNAME=SYS.IEFUTL,MOD=EXTUTL,FIRST

In order to ensure that EXT’s use of the IEFUTL exit point is terminated when EASY/Exit is stopped, the following statement should be included in the EXTTERM member of the DIF PARMLIB DD data set:

OPERCMD SETPROG EXIT,DELETE,EXITNAME=SYS.IEFUTL,MOD=EXTUTL

OVERVIEW 2-3

Note: Information about activating an exit is provided in the detailed reference informa-tion associated with each exit.

When EASY/Exit gets control, the product will search the DD statements associated with the job step or TSO session. Several functions within EASY/Exit are controlled by the existence of special DD statements.

The DEFPROD statement in the rules language defines the default reserved DD names. These reserved DD statements can be used to bypass EASY/Exit control, or enable debug-ging facilities. The reserved DD names can be changed or removed using the DEFPROD DDNAME parameter. For more information, examine the DDNAME parameters starting on page 5-112 in the Rules Language Programming Guide.

The default reserved DD names follow:

EXTIGN All EASY/Exit processing will be bypassed for any job step or TSO ses-sion that contains EXTIGN. To disable the ability to bypass EXT pro-cessing, place an invalid DD name on the DDNAME IGNORE(...) subparameter on the DEFPROD statement.

EXTLOG This DD statement can be used by EASY/Exit to write logging mes-sages produced by DIF common service routines. The EXTLOG DD statement is used for EXT problem determination, and should only be used when requested by technical support. The DDNAME LOG(...) subparameter on the DEFPROD statement can be used to modify this reserved DD name.

EXTMSG This DD statement can be used by EASY/Exit to disable message level processing used by internal and rules messages. The EXTMSG DD statement is usually used for EXT problem determination, and should only be used when requested by technical support. The DDNAME MSG(...) subparameter on the DEFPROD statement can be used to modify this reserved DD name.

EXTTEST This DD statement can be used to enable the EASY/Exit test rules. If a DEFRULE statement specifies the TEST parameter, normal processing will skip the rule. By specifying the EXTTEST DD statement, a rule verification job can enable the rule for testing. For more information, examine “TESTING AND DEBUGGING” on page 14-1. The DDNAME TEST(...) subparameter on the DEFPROD statement can be used to modify this reserved DD name.

EXTTRACE This DD statement can be used to enable the EASY/Exit rule tracing facility. When this DD statement is encountered in a job step or TSO session, messages will be written about the compare operations that occur during rules processing. For more information, examine “TEST-ING AND DEBUGGING” on page 7-1. The DDNAME TRACE(...)

subparameter on the DEFPROD statement can be used to modify this reserved DD name.

Note: The DEFPROD DDNAME(MAXSCAN(n)) parameter can be used to limit scan-ning for the Reserved DD names to the first n DD statements. For more information, examine MAXSCAN on page 5-113 in the Rules Language Programming Guide.