Prerequisites to use ESS


This topic describes the changes required to use ESS.

JCL changes

Setting up ESS does not cause any JCL changes to the current CSS usage. To set up ESS, you can use one of the following methods:

  • Simple JCL changes for specific jobs
  • Change to a shared JCL Procedure (PROC) for a group of personnel desires ESS usage.
  • Code the option as ESS(YES).
-------------
CLASSDDIO_FLENGTH =5C29ATTRIBUTES=CAT,NOLOAD

-------------

SECTIONCLASS --------SOURCE--------
OFFSETOFFSETNAMETYPELENGTHDDNAMESEQMEMBER
 0UTFCLASCSECT5C29SYSLIN01**NULL**

Important

For PL/I only, you must specify GOFF and OBJECT for ESS(YES) compiler options to work.

-------------
CLASSDDIO_FLENGTH =5C29ATTRIBUTES=CAT,NOLOAD

-------------

SECTIONCLASS --------SOURCE--------
OFFSETOFFSETNAMETYPELENGTHDDNAMESEQMEMBER
 0UTFCLASCSECT5C29SYSLIN01**NULL**

Important

If your site uses ESS, you might not need to continue to add the listing to your site's DDIO files. If that is the case, you might need an additional change to stop the writing of the listing to the DDIO file. For example:

  • If COBOL(OUTPUT(DDIO)) is specified, then change the parm to COBOL(OUTPUT(NODDIO)).
  • If PROC(OUTPUT(DDIO)) is specified, then change the parm to PROC(OUTPUT(NODDIO)).

PARMLIB changes

You can use the ESS parameter to enable ESS globally without making any JCL changes.

Important

Explicit CSS LP commands override CSS PARMLIB settings commands in JCL. Hence, at runtime, you have complete control over which listing—ESS or DDIO—to use.

You can set up CSS PARMLIB members during Common Mainframe Services Controller (CMSC) configuration. Because this is a PARMLIB setup task, the appropriate ECC site administrator must run the setup instructions as described in Configuring-CMSC-for-a-new-install.

ESS program object DASD size changes

Because CSS stores the COBOL listing in the COBOL-produced program object, the program object size increases overtime. This increase should be almost exactly the same size as if the listing was written to a DDIO file, database, or shared directory entry.

BMC focused the architecture of the ESS implementation on many requirements, but the most important was to design an access method for the program object that would minimize DASD usage. Measuring the DASD usage and comparison to the current DDIO method were paramount requirements. The engineering team has successfully implemented ESS to write the same number of records byte by byte as is written to a DDIO file, database, or shared directory. Hence, we know the exact size increase, a well-known and familiar number.

ESS z/OS Binder sections

You can view the exact size of the ESS records written to a program object from the SYSPRINT output from the z/OS Binder run that creates the program object.

Specifying PARM='LIST,XREF,MAP' is necessary when you run the z/OS Binder to view the needed lines of SYSPRINT output. MAP gives you a module-by-module breakdown, and the CLASS named DDIO_F, written with the NOLOAD attribute comprises the ESS listings.

Example of z/OS Binder output showing DDIOF CLASS with NOLOAD Attribute

-------------
CLASSDDIO_FLENGTH =5C29ATTRIBUTES=CAT,NOLOAD

-------------

SECTIONCLASS --------SOURCE--------
OFFSETOFFSETNAMETYPELENGTHDDNAMESEQMEMBER
 0UTFCLASCSECT5C29SYSLIN01**NULL**

COBOL DDIO OUTPUT compression

The COBOL Language Processor DDIO OUTPUT command features a NOCOMPRESS/COMPRESS subcommand. You can use this subcommand to significantly reduce the size of a COBOL listing in the DDIO file.
Syntactically, DDIO(OUTPUT(COMPRESS)) compresses the COBOL listing.

Important

The default is NOCOMRESS, so manual JCL changes are necessary.

Laboratory tests have achieved 40% or higher compression on very large COBOL listings with more than a million lines of SYSPRINT output. Your output and results might vary, but the benefit might be substantial for your environment with these numbers

ESS compression

ESS listings are virtually identical to DDIO listings and compression results should be identical to it. 

To enable compression, use the existing compression command for DDIO files by using the DDIO command, as shown in the following example and as recommended in Compile and Assembly JCL Examples.

//CWPPRMO DD *
COBOL(OUTPUT(DDIO,PRINT))
DDIO(OUTPUT(COMPRESS))
ESS(YES)
ZIIP(YES)
/*

Selective size reduction

DDIO and ESS listings are logically divided into two partitions, and each of which contains a pre-formatted analytical data, which is extracted from the compiler listing and other auxiliary files. such as INCLUDES and COPY SECTIONS.

  • The pre-formatted analytical data is used by all the companion products, such as Abend-AID or Code Debug to implement product functions. You cannot adjust its size. 
  • The compiler listing of CSS Utilities and Abend-AID Viewer is used to print, view or modify the listing. You can reduce the size of the compiler that is saved in both DDIO and ESS listing files by using the DDIO(OUTPUT) options.

Most of these options correspond to the physical part of the compiler listing. 

Tip

If you have already saved or used the compiler listing by alternate methods, consider reducing the size of the compiler listing to save disk space by significantly reducing the program object binary executable size when you are using ESS.  Saving the compiler listing uses considerable disk space and also provides quick access to the compiler listing. Always observe the need (and availability) of the compiler listing and disk space usage.

For example, if the COBOL XREF is available in the COBOL listing and you also use the DDIO(OUTPUT(NOXREF)) statement while creating the DDIO or ESS Listing, then the XREF section will not be available when you apply the VIEW command (by using Workbench) or the PRINT command (by using the Language processor utility program CWDDALLU).

To exemplify the savings, we ran laboratory tests with the following DDIO(OUPUT) options (including COMPRESS), running an actual, large, about 500 KB–line COBOL program.

Scenario

DDIO(OUTPUT) options

Listing Size (in bytes)

Description

1

FIND,COMPRESS,XREF,PMAP,DMAP,LIST,CLIST,OFFSET

127,976,251

Contains all compiler listing sections. You can use this option if you need to modify the compiler listing of any function of your product and CSS Utilities. 

2

FIND,COMPRESS,NOXREF,NOPMAP,NODMAP,NOLIST,NOCLIST,NOOFFSET

70,909,989

Required for the BMC AMI DevX Code Debug for TSO enhanced FIND feature when the compiler listing is not required. If necessary, you can generate the compiler listing by alternate methods.

3

NOFIND,COMPRESS,NOXREF,NOPMAP,NODMAP,NOLIST,NOCLIST,NOOFFSET

59,212,206

Recommended if you are not using BMC AMI DevX Code Debug for TSO and the compiler listing is not required. If necessary, you can generate the compiler listing by alternate methods.


Important

The non-compiler listing functions of the products remains unaffected, irrespective of which option you use.

These options represent the maximum output with only FIND option, while suppressing all optional sections.

Recommendations:

  • The #1 option contains all listing sections. Most of them will likely not be used.
  • The #2 option is required for the Code Debug for TSO enhanced find feature.
  • The #3 option is recommended if not using Code Debug for TSO enhanced find. Enhanced Find is not available in Workbench.

For more information about syntax and description of each option, see COBOL-LP-Command-Descriptions-and-Syntax.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*