Coupling facility data
table support provides a method of file data sharing, using CICS® file control,
without the need for a file-owning region, and without the need for VSAM RLS
support. Data is held in a coupling facility list structure, in a table that
is similar in many ways to a shared user-maintained data table.
Unlike user-maintained data tables, coupling facility data tables do not
have to be pre-loaded from a source data set. Loading a coupling facility
data table is controlled by the DSNAME and LOAD attributes of the file resource
definition, which allows CFDTs to be populated entirely by the application
programs that use them by specifying LOAD(NO).
The way you use LOAD(YES) and the DSNAME attributes allows you to control
loading of a CFDT in various ways, such as:
- Any CICS region can load the coupling facility data table. The first file
open for the CFDT loads it, regardless of which CICS region issues the open.
The data set is opened read-only by the loading CICS. All file definitions
for the table specify LOAD(YES) and the DSNAME of a source data set. If you
use this approach, ensure that the same data set is named on each file definition,
otherwise the data set named on the first to be opened is the one that is
loaded into the CFDT. CICS does not verify that the DSNAMEs are the same for
all files that refer to the same CFDT.
- One CICS region can be made responsible for loading the coupling facility
data table. The loading region contains a file definition for the CFDT that
specifies LOAD(YES) and the DSNAME for the data set, which is opened read-only
by the loading CICS. Other CICS regions do not need access to the source data
set, but they cannot open the CFDT until the loading region has opened it.
The file definitions for the CFDT in non-loading regions must also specify
LOAD(YES) but omit the DSNAME.
You can restrict access to a coupling facility
data table until after it has been loaded by using two (or more) file names
that refer to the same coupling facility data table. To control access in
this way:
- Define only one file name as being capable of loading the data table,
by specifying LOAD(YES) and DSNAME(dataset_name)
Do not refer to this file name from application programs.
- Define another file (or files) for application program use, ensuring that
this file definition cannot initiate table loading. Specify LOAD(YES), but
ensure the data set name is not specified on the DSNAME attribute, and that
there is no DD statement for this file (or files).
- Ensure that the load-capable file is opened before any application programs
are likely to require access to the data table. For example, define the table-loading
file name with OPENTIME(STARTUP) to ensure that the file is opened automatically
toward the end of CICS initialization.
- Ensure that application programs access the data table by referring to
a filename that does not load the data.
- Some hybrid of the above two approaches can be used, where some CICS regions
can load the table, and others require it to be loaded on their behalf.