|
- 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)
/*
- 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,
- 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.
- 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.
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.
|