z/OS Cryptographic Services ICSF System Programmer's Guide
Previous topic | Next topic | Contents | Index | Contact z/OS | Library | PDF


Steps for installing the CICS-ICSF attachment facility

z/OS Cryptographic Services ICSF System Programmer's Guide
SA22-7520-17

  1. If ICSF was previously installed in an environment without the CICS-ICSF Attachment Facility (i.e., without being linked with the CICS SDFHLOAD data set), the ICSF system programmer will need to relink the ICSF TRUE, CSFATRUE, and the ICSF enabling routine, CSFATREN. This would be the case if, for example, (a) the DDDEF entries for ICSF do not have the SDFHLOAD DDDEF pointing to the CICS SDFHLOAD data set but instead have it pointing to an empty data set, or (b) z/OS (and hence ICSF) was installed using a ServerPac.

    To relink the ICSF modules, first manually update the ICSF DDDEF for SDFHLOAD to point to the CICS SDFHLOAD data set. (Refer to ICSF sample CSFDDDEF shipped in SAMPLIB.) Then submit a job to relink the ICSF modules. This is an example of job control language for the relink.

    //STEP01        EXEC PGM=IEWL,
    //   PARM='LIST,XREF,LET,DCBS,AMODE(31),RMODE(24)'
    //SYSLMOD   DD DISP=SHR,DSN=yyy.SCSFMOD0   (the ICSF load library)
    //SYSLIB    DD DISP=SHR,DSN=xxxxxx.SDFHLOAD
    //SDFHLOAD  DD DISP=SHR,DSN=xxxxxx.SDFHLOAD
    //SCSFMOD0  DD DISP=SHR,DSN=yyy.SCSFMOD0   (the ICSF load library)
    //SYSUT1    DD UNIT=SYSDA,SPACE=(CYL,(10,10))
    //SYSPRINT  DD SYSOUT=*
    //SYSLIN    DD *
           INCLUDE SDFHLOAD(DFHEAI)
           REPLACE CSFDHEAI(DFHEAI),CSF0EAI
           INCLUDE SCSFMOD0(CSFATREN)
             ENTRY DFHEAI
         NAME CSFATREN(R)
           INCLUDE SDFHLOAD(DFHEAI)
           REPLACE CSFDHEAI(DFHEAI),CSF0EAI
           INCLUDE SCSFMOD0(CSFATRUE)
             ENTRY DFHEAI
         NAME CSFATRUE(R)
    /*
  2. Include the ICSF load module data set in the CICS startup job control language as shown in this example.
    //DFHRPL    DD DISP=SHR,DSN=xxxxx.SDFHLOAD
    //          DD DISP=SHR,DSN=yyy.SCSFMOD0 (The ICSF load library)
    //          DD ...
    ...
    //SYSIN     DD DISP=SHR,DSN=xxxxx.SYSIN(DFH$SIPx)
    ...

    In the previous sample code, DFH$SIPx includes the entry:

    PLTPI=yy,
  3. Customize the Program Load Table (PLT), to include the ICSF enabling routine CSFATREN in second stage initialization.

    This is an example input deck for compiling a PLT for automatic enablement of the CICS-ICSF link. This is ASM code. Assemble it with the CICS macro library, but without the CICS translator.

    //SYSIN DD *
    *
    * List of programs to be executed sequentially during system
    * initialization.  Required system initialization parm: PLTPI=yy
    * DFHPLTCS should be defined in the CSD by CEDA or DFHCSDUP job
    *
    DFHPLT TYPE=INITIAL,SUFFIX=yy
    *
    * -------- Second stage of initialization -----------------
    *
    DFHPLT TYPE=ENTRY,PROGRAM=CSFATREN  (Run enable of CSFATRUE)
    *
    * ---------- Delimiter between Stages 2 and 3 ------------
    *
    DFHPLT TYPE=ENTRY,PROGRAM=DFHDELIM
    *
    * --------- Third stage of initialization -----------------
    * (none)
    *
    DFHPLT TYPE=FINAL
    END
    /*

    The previous code is an example only. Your CICS administrator can use it as a guide in customizing the PLT. For more information about coding the PLT, refer to CICS Resource Definition Guide.

  4. Link edit the PLT with these controls:
    INCLUDE OBJLIB(DFHPLTyy)
    NAME    DFHPLTyy(R)
  5. The CICS administrator should customize the system CSD to include:
    • CSFATRUE
    • CSFATREN
    • A PLT to indicate that initialization is to call CSFATREN to enable the ICSF TRUE, CSFATRUE

    This is an example of the job control language and input. In this example, xxxxx represents the local CICS prefix, and zzzzzzzz represents the PLT entry that was compiled previously.

    //UPDATE  JOB  ...
    //*- - - - - - - - - - - - - - - - - - - - -
    //DEFINES EXEC PGM=DFHCSDUP,REGION=2M
    //STEPLIB   DD DISP=SHR,DSN=xxxxxx.SDFHLOAD
    //          DD DISP=SHR,DSN=zzzzzzzz
    //DFHCSD    DD DISP=SHR,DSN=xxxxxx.DFHCSD
    //SYSPRINT  DD SYSOUT=A
    //SYSIN     DD *
    *
    DEFINE PROGRAM(CSFATREN) GROUP(ICSF)
                             DESCRIPTION(TRUE enablement routine)
                             LANGUAGE(ASSEMBLER)
    *
    DEFINE PROGRAM(CSFATRUE) GROUP(ICSF)
                             DESCRIPTION(ICSF interface TRUE)
                             LANGUAGE(ASSEMBLER)
                             CONCURRENCY(THREADSAFE)
                             API(OPENAPI)
    *
    DEFINE PROGRAM(DFHPLTyy) GROUP(ICSF)
                             DESCRIPTION(PLT Program Init for CSFATRUE)
                             LANGUAGE(ASSEMBLER)

    The PLT in the example runs the program CSFATREN during CICS initialization. CSFATREN automatically enables the ICSF TRUE, CSFATRUE. If CICS is already started, use a CICS Command Level Interpreter Transaction (CECI) to enable CSFATRUE. To do this, go into CECI and issue this statement:

    ENABLE PROGRAM('CSFATRUE') TALENGTH(250) LINKEDITMODE START

    You can also do this in a single step with this statement:

    CECI ENABLE PROGRAM('CSFATRUE') TALENGTH(250) LINKEDITMODE START
  6. If you have any existing CICS applications which invoke any of the ICSF services in the Wait List, then these applications must be re-linked with the current ICSF stubs.

Implementing the CICS wait list

The CICS Wait List can be implemented by means of a customer modifiable data set, pointed to by the Installation Options Data Set (WAITLIST parameter). The default WAITLIST includes all services which can complete asynchronously (for example, those services which perform I/O to a cryptographic key data set and those services which are routed to a PCICC or PCIXCC). If the option is not specified, the default CICS Wait List will be utilized by ICSF when a CICS application invokes an ICSF callable service. If WAITLIST is specified, the data set specified by this parameter will be used to determine the names of the services to be placed on the CICS Wait List. A sample data set is provided by ICSF via member CSFWTL00 (for CCF systems with PCICCs) and CSFWTL01 (for systems with PCIXCCs) of SYS1.SAMPLIB. The sample data set contains the same entries as the default ICSF CICS Wait List -- for example, the data set contains the names of all ICSF callable services which, by default, will be driven through the CICS TRUE.

The WAITLIST option should be added to the Installation Options data set under these conditions.

  • Non-CICS customers will not specify a WAITLIST keyword.
  • CICS customers who want to use the default CICS Wait List shipped with ICSF will not specify a WAITLIST keyword. If you have any existing CICS applications which invoke any of the ICSF services in the Wait List, then these applications must be re-linked with the current ICSF stubs.
  • CICS customers who do not want to make use of CICS TRUE must either not enable the TRUE or specify a WAITLIST keyword and point to an empty wait list data set or you can specify WAITLIST(DUMMY) in the Installation Options data set.
  • CICS customers who wish to modify the ICSF default CICS Wait List should modify the sample Wait List data set supplied in member CSFWTL00 (for CCF systems with PCICCs) or member CSFWTL01 (for systems with PCIXCCs, CEX2Cs, or CEX3Cs) of SYS1.SAMPLIB. The WAITLIST keyword in the Installation Options Data Set should be set to point to this data set. If you have any existing CICS applications which invoke any of the ICSF services in the Wait List, then these applications must be re-linked with the current ICSF stubs.

If you already have the CICS-ICSF Attachment facility installed, there are a number of callable services which may potentially be routed to the PCICC, PCIXCC, CEX2C, or CEX3C or may perform other asynchronous processing. If you have a modified CICS Wait List, you should ensure that the wait list data set includes all such services, and any CICS applications which invoke any of these services are re-linked with the current ICSF stubs. As a model, you can use the default CICS Wait List that is shipped with ICSF which includes all services which have an asynchronous interface to ICSF or you can use a sample Wait List data set that is also shipped with ICSF. The sample CICS Wait List data set is contained in member CSFWTL00 (for CCF systems with PCICCs) or in member CSFWTL01 (for systems with PCIXCC, CEX2C, or CEX3C) of SYS1.SAMPLIB. The sample data set contains the same entries as the default ICSF CICS Wait List. You can modify the sample data set to add and/or delete items from the Wait List. Here are some examples of why you might want to modify the sample data set.

For CCF Systems:

  • If you do not have a PCI Cryptographic Coprocessor installed, you can delete all of the services identified with an "*" that are in the sample wait list.
  • If you have a PCI Cryptographic Coprocessor installed, you can examine the services your applications invoke in a CICS environment and determine, based upon the routing information provided for each service in z/OS Cryptographic Services ICSF Application Programmer’s Guide, that the service will never be routed to a PCI Cryptographic Coprocessor. In this case (except for the CKDS/PKDS access services) the service can be deleted from the list.

For CCF systems with a PCICC or z990/z890 systems with a PCIXCC/CEX2C:

  • If you have an application which invokes a UDX while running under CICS, then the name of the UDX generic service should be added to the CICS Wait List.

If you use a CICS Wait List data set, you need to identify the data set to ICSF through the WAITLIST(data_set_name) option in the ICSF Installation Options data set. The data set can be a member of a PARMLIB, a member of a partitioned data set, or a sequential data set. The data set should be allocated on a permanently resident volume and should adhere to:

  • The format of each record in the data set must be fixed length or fixed block length.
  • A physical line in the data set must be a LRECL of 80 characters long. The system ignores any characters in positions 73 to 80 of the line.
  • You can delimit comments by "/*" and "*/" and include them anywhere in the text. A comment cannot span physical records.
  • Only one service may be specified on a logical line.
Note:
You can use the WAITLIST(DUMMY) parameter to specify a null CICS Wait List data set, or you can disable the CICS TRUE if you do not want to utilize the CICS TRUE. See Parameters in the installation options data set for additional information.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014