Skip to content

CMNCICS6 - CICS CSD Extract

The CICS CSD interface lets you extract defined table entries in a CICS CSD file, and translate the results into an editable format. This process is controlled by specifying keywords in the SYSIN data stream.

Export Option

Program CMNCICS6 validates the CMNIN file by verifying the keywords (DFHCSD, EXPORT, IGROUP, and OGROUP) are grouped and sequenced properly.

A group consists of one DFHCSD card, one EXPORT card, one or more IGROUP cards (up to 256), and one OGROUP card. You can specify up to 256 groups in a single execution.

  • For each DFHCSD/EXPORT keyword pair, CMNCICS6 will issue a GETMAIN for a work area.
  • For each DFHCSD card read CMNCICS6 will lock the VSAM data set specified.

  • For each EXPORT card read CMNCICS6 will allocate the PDS data set allocated.

  • For each IGROUP and the OGROUP card read CMNCICS6 will build an entry in the work area.

Once all of the data has been read and the work areas built, CMNCICS6 will allocate the SORTWORK data sets. For each work area built, CMNCICS6 will open a member in the PDS data set named by the OGROUP specified. SORT is invoked specifying E15 (input) and E35 (output) exits. The E15 (input) SORT exit will read data from the PDS member and translate the GROUP name to that specified in OGROUP. The E35 (output) SORT exit will translate each record into an 'editable' member in the PDS.

A typical job stream to execute CMNCICS6 EXPORT Option follows.

  • The DFHCSD keyword must specify a fully qualified cataloged VSAM data set name not exceeding 44 characters in length.

  • The EXPORT keyword must specify a fully qualified PDS data set name not exceeding 44 characters in length.

  • The IGROUP keyword must specify a valid GROUP entry on the CICS CSD data set specified with the DFHCSD keyword and must not exceed 8 characters in length.

  • The OGROUP keyword must not exceed 8 characters in length.

Basic Format of CMNCICS6 Export Control Statement

The following is an example of JCL for export executing CMNCICS6:

//CHGMAN6 JOB (account)
//*
//* JCL for EXPORT
//*
//STEPONE   EXEC PGM=CMNCICS6
//STEPLIB   DD DSN=somnode.SERENA.CMNZMF.VxRxMx.LOAD,DISP=SHR
//          DD DSN=somnode.SERENA.SERCOMC.VxRxMx.LOAD,DISP=SHR
//CMNOUT    DD SYSOUT=*
//CMNIN     DD *
DFHCSD=VSAM data set name
EXPORT=PDS data set name
IGROUP=input group
IGROUP=input group
IGROUP=input group
.
.
.
OGROUP=output group
DFHCSD=VSAM data set name
EXPORT=PDS data set name
IGROUP=input group
IGROUP=input group
IGROUP=input group

...

This table describes placeholders in the CMNIN parameter statements.

Subparameters Description
VSAM data set name Test data set name of the CICS-defined CSD where IGROUP clusters will be read.
PDS data set name Test data set name of the ChangeMan ZMF PDS where the OGROUP members will be written.
input group Name of an application-defined group name residing in the CICS CSD VSAM data set.
output group Name of the production-defined group name for this application

...

Import Option

The purpose of this interface is to let you add CICS table entries to a CICS CSD file from an edited format. The input data is usually created by the CSD export process. The import process is controlled by specifying certain keywords in the SYSIN data stream.

Program CMNCICS6 validate SYSIN by verifying the keywords are grouped and sequenced properly. DFHCSD and IMPORT are the valid SYSIN keywords.

A grouping consists of one DFHCSD card, and one IMPORT card. You can specify up to 256 groups in a single execution.

  • For each DFHCSD/IMPORT keyword pair, CMNCICS6 will issue a GETMAIN for a work area.

  • For each DFHCSD card read CMNCICS6 will lock the VSAM data set specified.

  • For each IMPORT card read CMNCICS6 will allocate the PDS data set allocated.

  • Once ALL the SYSIN cards are read and the work areas built, CMNCICS6 will allocate the SORTWORK data sets.

  • For each work area built, CMNCICS6 will read each member, and for each member invoke SORT, specifying the E15 (input) and E35 (output) exits.

  • The E15 (input) SORT exit will read the PDS member and translate the member into a VSAM data record.

  • The E35 (output) SORT exit will add or update the CSD file from the VSAM data record.

A typical job stream to execute CMNCICS6 IMPORT Option follows.

  • The CMNIN data stream can start in any column. Multiple imports can be specified.

  • The DFHCSD keyword must specify a fully qualified cataloged VSAM data set name not exceeding 44 characters in length.

  • The IMPORT keyword must specify a fully qualified PDS data set name not exceeding 44 characters in length.

Basic Format of CMNCICS6 Import Control Statement

The following is an example of JCL for export executing CMNCICS6:

//CHGMAN6 JOB (account)
//*
//* JCL for IMPORT
//*
//STEPONE   EXEC    PGM=CMNCICS6
//STEPLIB   DD      DSN=somnode.SERENA.CMNZMF.VxRxMx.LOAD,DISP=SHR
//          DD      DSN=somnode.SERENA.SERCOMC.VxRxMx.LOAD,DISP=SHR
//CMNOUT    DD      SYSOUT=*
//CMNIN     DD      *
  DFHCSD=VSAM data set name
    IMPORT=PDS data set name
  DFHCSD=VSAM data set name
    IMPORT=PDS data set name
  DFHCSD=VSAM data set name
    IMPORT=PDS data set name
.
.
.
  DFHCSD=VSAM data set name
    IMPORT=PDS data set name

...

This table describes placeholders in the CMNIN parameter statements.

Term Description
VSAM data set name is the production DATA SET name of the CICS defined CSD where the clusters will be written.
PDS data set name is the production DATA SET name of the ChangeMan ZMF PDS from which the members will be read.

...

CICS Keywords processed by CMNCICS6

This CMNCICS6 assembler code defines the CICS keywords and their default values for PROGRAMS, MAPSETS, TRANSACTIONS and PROFILES:

*
* Definition and defaults for programs
*
PPTDEF  DS  0D
 DC CL80'DEFINE Group()'
 DC CL80'        PROGram()'
 DC CL80'        Language(Cobol)     cobol | assembler | pli | rpg'
 DC CL80'        RELoad(No)          no | yes'
 DC CL80'        RESident(No)        no | yes'
 DC CL80'        RSl(00)             0 -24 | public'
 DC CL80'        Status(Enabled)     enabled | disabled'
 DC X'FF'
_____________________________________________
*
* Definition and defaults for mapsets
*
MAPDEF  DS 0D
 DC CL80'DEFINE Group()'
 DC CL80'    Mapset()'
 DC CL80'    RSl(00)                 0 -24 | public'
 DC CL80'    Status(Enabled)         enabled | disabled'
 DC X'FF'
_____________________________________________
*
* Definition and defaults for transactions
*
PCTDEF DS 0D
 DC CL80'DEFINE Group() '
 DC CL80'       TRansaction() '
 DC CL80'       PROGram() '
 DC CL80'       TWasize(00000)       0 - 32767 '
 DC CL80'       PROFile(DFHCICST) '
 DC CL80'       PArtitionset() '
 DC CL80'       STatus(Enabled)      enabled | disabled '
 DC CL80'       PRIMedsize(00000)    0 - 65520 '
 DC CL80'*   REMOTE ATTRIBUTES '
 DC CL80'       REMOTESystem() '
 DC CL80'       REMOTEName() '
 DC CL80'       TRProf() '
 DC CL80'       Localq()             no | yes '
 DC CL80'*   SCHEDULING '
 DC CL80'       PRIOrity(001)        0 - 255 '
 DC CL80'       TClass(No)           no | 1 - 10 '
 DC CL80'*   ALIASES '
 DC CL80'       TAskreq() '
 DC CL80'       Xtranid() '
 DC CL80'*   RECOVERY '
 DC CL80'       DTimout(No)          no | 1 - 7000 '
 DC CL80'       Indoubt(Backout)     backout | commit | wait'
 DC CL80'       REStart(No)          no | yes '
 DC CL80'       SPurge(No)           no | yes '
 DC CL80'       TPurge(No)           no | yes '
 DC CL80'       DUmp(Yes)            yes | no '
 DC CL80'       TRACe(Yes)           yes | no '
 DC CL80'*   SECURITY '
 DC CL80'       Extsec(No)           no | yes '
 DC CL80'       TRANsec(01)          1 - 64 '
 DC CL80'       RSL(00)              0 - 24 | public '
 DC CL80'       RSLC(No)             no | yes | external '
 DC X'FF'
_______________________________________________
*
* Definition and defaults for profiles
*
PRFDEF  DS  0D
 DC CL80'DEFINE Group() '
 DC CL80'       profile() '
 DC CL80'       scrnsize(default) default | alternate '
 DC CL80'       modename() '
 DC CL80'       printercomp(no) no | yes '
 DC CL80'*  JOURNALLING '
 DC CL80'       journal(no) no | 1 - 99 '
 DC CL80'       msgjrnl(no) no | input | output | inout'
 DC CL80'*  PROTECTION '
 DC CL80'       msginteg(no) no | yes '
 DC CL80'       onewte(no) no | yes '
 DC CL80'       protect(no) no | yes '
 DC CL80'*  PROTOCOLS '
 DC CL80'       dvsuprt(all) all | nonvtam | vtam '
 DC CL80'       inbfmh(no) no | all | dip | eods '
 DC CL80'       raq(no) no | yes '
 DC CL80'       logrec(no) no | yes '
 DC CL80'*  RECOVERY '
 DC CL80'       nepclass(000) 0 - 255 '
 DC CL80'       rtimout(no) no | 1 - 7000 '
 DC X'FF'

...

If the functionality of the CMNCICS6 utility meets the current requirements of your installation, you may continue to maintain your existing PROGRAM and TRANSACTION definitions with the CMNCICS6 utility.

If your installation requires use of PROGRAM or TRANSACTION definition parameters that are not supported by CMNCICS6 (for example, the DATALOCATION parameter), or if you wish to use ChangeMan/ZMF to control other RDO resource types (for example, TERMINAL definitions) you must use DFHCSDUP.

The DFHCSDUP utility is supplied by IBM as part of CICS. It does not provide the richness of functionality of CMNCICS6 (multiple DFHCSD statements, IMPORT EXPORT statements) but does support all CICS RDO parameters.

Here is the sample JCL to unload existing definitions from the DFHCSD. The primary purpose of this step would be to pull the definitions out of a test CICS, so that they could be maintained in ZMF:

//STEP1   EXEC  PGM=DFHCSDUP,REGION=0M,
//              PARM='CSD(READWRITE),PAGESIZE(60),NOCOMPAT'
//STEPLIB   DD DSN=cicshlq.SDFHLOAD,DISP=SHR
//*******************************************************************
//** THIS JCL WILL UNLOAD AN EXISTING DFHCSD GROUP IN A FORMAT THAT**
//** WILL ALLOW IT TO BE LOADED TO ANY OTHER DFHCSD LIBRARY        **
//*******************************************************************
//DFHCSD    DD DISP=SHR,DSN=cicshlq.DFHCSD
//SYSPRINT  DD SYSOUT=*
//CBDOUT    DD SYSOUT=A
//SYSIN     DD *
EXTRACT GROUP(XXXXXXXX) USERPROGRAM(DFH0CBDC) OBJECTS
/*

...

Here is the sample JCL to upload new definitions from ZMF to the DFHCSD. The input to this step would be the resource definition stored in ZMF. Existing resource definitions created by CMNCICS6 will work without any changes required:

//STEP1    EXEC PGM=DFHCSDUP,REGION=0M,
//              PARM='CSD(READWRITE),PAGESIZE(60),NOCOMPAT'
//STEPLIB   DD  DSN=cicshlq.SDFHLOAD,DISP=SHR
//*******************************************************************
//** THIS JCL WILL UPLOAD CICS RESOURCE DEFINITIONS TO THE DFHCSD **
//*******************************************************************
//DFHCSD    DD  DISP=SHR,DSN=cicshlq.DFHCSD
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *

...

CEDA Language Review

OGROUP members of the PDS subject to ChangeMan ZMF control will have identical format to those supplied and documented in the IBM publication CICS/VS Resource Definition Online. CMNCICS6 will read these members and create VSAM records for each definition in an identical manner to the online CICS transaction CEDA.

Although multiple CSD files have been used by more prudent installations, the control of a CSD file by ChangeMan ZMF implies that a production CSD file should be kept separate from a testing CSD file and that the testing file can be subject to change using CEDA whereas the production system should have these resource definition online (RDO) transactions disabled. This eliminates the probability of unauthorized changes to the production environment outside of ChangeMan ZMF control.

In the IBM publication, the RDO defined defaults are shown in parentheses. The required keywords are shown in their entirety. Ranges of values are shown with valid limits.

CMNCICS6 assumes that all source has been exported from a valid CSD file. Therefore, any syntactical errors introduced by users of external editors will cause entries to be ignored by CMNCICS6. Default values will be assigned as shown.

For example, the following is the definition for a program. The information here is the same as that used by CEDA to build a PPT entry.

PROGram(pgmname)
Language(COBOL)     COBOL | Assembler | Pl1
RELoad(No)          No | Yes
RESident(No)        No | Yes
RSl(00)             0-64 | Public
Status(Enabled)     Enabled | Disabled

...