Steps for installing the CICS-ICSF attachment facility
- 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.SCSFSTUB (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) /*
- 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.SCSFSTUB (ICSF callable service stubs) // DD DISP=SHR,DSN=yyy.SIEALNKE (ICSF shared libraries) // DD ... ... //SYSIN DD DISP=SHR,DSN=xxxxx.SYSIN(DFH$SIPx) ...
In the previous sample code, DFH$SIPx includes the entry:PLTPI=yy,
- 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 Transaction Server for z/OS, Version 5 Release 1.
- Link edit the PLT with these controls:
INCLUDE OBJLIB(DFHPLTyy) NAME DFHPLTyy(R)
- 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
- 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.