UCF Back-End

The UCF back-end exists in the DC/UCF runtime region/partition.
idms19
The UCF back-end exists in the DC/UCF runtime region/partition.
UCF uses a system table to control access to the back-end system by front-end programs and terminals. The system table contains the following information:
  • The maximum number of front-end systems that can access the back-end concurrently
  • The initial status of each front-end system (that is, online or offline)
A system table named RHDCFSTB is installed with UCF. This table permits access to the UCF back-end by any UCF front-end system that has been defined with a system identifier of: BATCH, CICS, z/VM, DC, or TSO. If you ensure that only front-end system identifiers from the above list are used, a new UCF system table need not be assembled. A system identifier need not reflect the actual TP monitor; for example, a CICS front-end could be defined with a front-end system identifier of CICS.
The UCF system table is created by assembling two macros: #FESTDEF and #FESTENT. The resulting object module must be linked as a separate load module. Each macro is discussed separately below, followed by a sample system table definition and the JCL used to link edit the system table.
The UCF system table is loaded at startup. The "DCMT Vary UCF Front-end System Table New Copy" command can be used to load an altered table without cycling the DC/UCF region or partition.
2
2
FESTDEF Macro
The #FESTDEF macro is used to create the header for the UCF system table. #FESTDEF specifies the maximum number of front-end systems permitted to access the UCF back-end concurrently. One #FESTDEF macro is assembled for each UCF back-end. #FESTDEF must be the first macro in the source file.
The following is the syntax for the #FESTDEF macro. The macro must be labeled; the label provides the module's entry point name.
FESTDEF Syntax
►►─── label #FESTDEF ────────────────────────────────────────────────────────► ►─── CNT = system-count ────────────────────────────────────────────────────►◄
FESTDEF Parameter
  • CNT=
    Specifies the maximum number of front-end systems that can be defined in the UCF system table.
    system-count
    must be an integer in the range 1 through 32767.
FESTENT Macro
The #FESTENT macro is used to create an entry in the UCF system table for each front-end system. #FESTENT identifies the front-end systems that are permitted to access the UCF back-end and the type of processing permitted from that front-end.
One #FESTENT macro must be coded for:
  • Each front-end system that is to access the back-end using UCF
  • Each front-end system that supports external request unit processing
The number of #FESTENT macros cannot exceed the value specified in the CNT parameter of the #FESTDEF macro.
The following is the syntax for the #FESTENT macro. The macro must be unlabeled.
FESTENT Syntax
►►─── #FESTENT ───────────────────────────────────────────────────────────────► ►─── FESID =
front-end-system-id
────────────────────────────────────────────► ►─┬───────────────────────────────┬──────────────────────────────────────────► └─ ,BLKSIZ = ─┬─
packet-size
─┬─┘ └─ 4096 ◄───────┘ ►─┬───────────────────────────┬──────────────────────────────────────────────► └─ ,ISTAT = ─┬─ ONLINE ◄──┬─┘ └─ OFFLINE ──┘ ►─┬─────────────────────────────────────────────────────┬────────────────────►◄ └─ ,MAX = ─┬─
max-concurrent-session-count
───────────┤ └─ -1 ◄────────────────────────────────────┘
FESTENT parameter
  • FESID=
    Specifies the one- through eight-character name of the front-end system. For UCF processing,
    front-end-system-id
    must match the identifier specified in the #UCFUFT macro or, for the batch, z/VM, and TSO front-ends, the system name specified in the #UCFBTCH, #UCFCMS, or #UCFTSO macro.
    For external request unit processing, the following naming conventions apply:
    • The first four characters of
      front-end-system-id
      are one of the following values:
      • BATC (the default), specifying batch communication
      • system-name
        , as specified in the TPNAME parameter of the IDMSINTC macro, specifying the CICS system from which the request comes
      • DCXX, specifying all DC systems from which request units may be initiated
    • The last four characters of
      front-end-system-id
      are BULK.
  • BLKSIZ
    Specifies the size, in bytes, of the packet to use for a batch external request.
    packet-size
    is an integer in the range 0 through 32000; the default is 4096. Smaller packets use less of the z/OS common system area (CSA) while larger packets use less CPU on both the front-end and the back-end for buffering.
  • ISTAT=ONLINE|OFFLINE
    Specifies the initial status of the back-end system when the DC/UCF system starts up as follows:
    • ONLINE (default) -- The back-end system will be online at system startup. Connection requests from the system's front-end terminals will be accepted by the DC/UCF system.
    • OFFLINE -- The back-end system will be offline at system startup. Connection requests from the system's front-end terminals will not be accepted until the system is varied online with a DCMT VARY UCF SYSTEM command.
  • MAX=
    Specifies the maximum number of concurrent sessions allowed for
    front-end-system-id
    , in the range -1 through +32767. The default value, -1, indicates that there is no limit. When the maximum number of sessions is reached, further connections are not allowed.
Sample System Table Definition
The following statements define a UCF system table with BATCH, TSO, and CICS front-end systems and two systems that support external request units:
#MOPT CSECT=RHDCFSTB,ENV=USER COPY #UCFDS RHDCFSTB CSECT FESTABLE #FESTDEF CNT=5 #FESTENT FESID=BATCH #FESTENT FESID=TSO #FESTENT FESID=CICS #FESTENT FESID=BATCBULK,BLKSIZ=12000 #FESTENT FESID=CICPBULK,BLKSIZ=2000 END FESTABLE
System Table JCL
This section contains the JCL to assemble and link edit the UCF system table for z/OS and z/VSE operating systems.
z/OS UCF system table assembly and link edit
To create a z/OS system table:
  1. Create a UCF system table source module as follows:
    COPY #UCFDS DSECT for UCF control blocks rhdcfstb CSECT fstbep #FESTDEF CNT=system-count #FESTENT macros END fstbep
  2. Save the source module in your custom source library.
  3. Assemble and link it into your custom load library by executing the z/OS Assemble and Link-Edit JCL in the "Sample z/OS JCL" topic.
    Substitute the name of your source member and insert the following binder statement:
    ENTRY fstbep NAME rhdcfstb(R)
    • fstbep
      Entry point name of the system table.
    • rhdcfstb
      Name of the system table.
    • system-count
      Number of #FESTENT macros.
z/VSE UCF system table assembly and link edit
To create a z/VSE system table:
  1. Assemble and catalog the module using the sample JCL in z/VSE Assemble JCL in the "Sample z/VSE JCL" topic.
    Modify the JCL by substituting the following in place of the
    Assembler input statements
    :
    PUNCH 'CATALOG
    rhdcfstb
    .OBJ REPLACE=YES' COPY #UCFDS DSECT for UCF control blocks rhdcfstb CSECT fstbep #FESTDEF CNT=system-count #FESTENT macros END fstbep
  2. Link the system table using the sample JCL in z/VSE Link JCL.
    Modify the JCL by substituting the following statements in place of the
    Linkage editor control statements
    :
    PHASE
    rhdcfstb
    ,* INCLUDE
    rhdcfstb
    SETOPT PARM(AMODE=31,RMODE=ANY)
    • fstbep
      Entry point name of the system table.
    • rhdcfstb
      Name of the system table.
    • system-count
      Number of #FESTENT macros.