Builders

A builder (DFHBS*) is responsible for all the actions that can occur on a particular subcomponent of the terminal control table terminal entry (TCTTE). To build or delete a control block for a particular device, a set of builders is called. The set of builders is specified by a tree structure of patterns, each pattern specifying one builder.

The builder modules:
  • Make the autoinstall process possible (that is, build a TCTTE dynamically).
  • Allows new TCT entries to be added on a running CICS® system.
  • Allow the TCT to be dynamically updated on a running CICS system.
  • Allow TCT entries to be deleted on a running CICS system.
  • Reduce emergency restart times for those systems that use the autoinstall function. These systems have to take the time to restore and recover only those terminals that were autoinstalled at the time of termination.
  • Reduce warm start times for those systems that use auto-install. No auto-installed terminals (except LU6.2 parallel systems are recovered at warm start).
  • Reduce shutdown times for those systems using auto-install. Auto-install catalog entries are deleted but the entry in storage is not destroyed during shutdown.

In this information, the term TCTTE is used in a general way to refer to the terminal control table entries for connections (TCT system entries, TCTSEs), mode groups (TCT modegroup entries, TCTMEs), sessions (session TCT terminal entries, TCTTEs), skeletons (TCTSKs), and models.

The builder modules (DFHBS*) are link-edited together into the DFHZCQ load module.

Design overview

A builder (DFHBS*) is responsible for all the actions that can occur on a particular subcomponent of the TCTTE. The term subcomponent means a separately obtained area of storage which is referenced from the TCTTE or a collection of fields in the TCTTE that are logically associated with one another. General terms sometimes used instead of subcomponent are object or node. For example, the NIB descriptor, LUC extension, and BMS extension are all considered to be subcomponents.

Each time a calling module invokes DFHZCQ for INSTALL, it supplies a builder parameter set (BPS). The BPS describes the device to be defined. The device-type is determined by matching attributes in the BPS with a table of definitions, DFHTRZYT, in module DFHTRZYP. A BPS consists of a fixed-length prefix, a bit map preceded by its own length, an area for fixed-length parameters preceded by its own length, and three variable-length parameters, BIND, USERID, and PASSWORD. Each variable-length parameter has a 1-byte length field.

Control blocks

Builder modules all use both LIFO and a builder parameter set (BPS), which are passed between the CSECTs (DFHBS* modules). See Reference: Builder parameter list.

Table 1 describes terminal storage acquired by the builders.

Table 1. Terminal storage acquired by the builders
Control block field Description Storage manager subpool
TCTSE Terminal control table system entry ZCTCSE
TCTME Terminal control table mode entry ZCTCME
TCTTE Terminal control table terminal entry

ZCTCTTEL (large TCTTEs)

ZCTCTTEM (medium TCTTEs)

ZCTCTTES (small TCTTEs)

TCTENIBA NIB descriptor ZCNIBD
TCTEBIMG BIND image ZCBIMG
TCTTECIA User area ZCTCTUA
TCTTESNT Signon extension ZCSNEX
TCTELUCX LUC extension ZCLUCEXT
TCTTETEA BMS extension ZCBMSEXT
TCTTETPA Partition extension ZCTPEXT
TCTTECCE Console control element ZCCCE

Figure 1 illustrates the layout of TCTTE. Formatted dumps give the TCTTE first, followed by its supporting control blocks.

Figure 1. TCTTE layout
The TCTTE has sub-components NIBD, BIND, BMS extension, User area, LUC extension, and SNTTE. BMS extension has a further sub-component, Partition support.

CEDA DEFINE puts a definition on the CSD. The definition is in the form of a CEDA command.

CEDA INSTALL reads the definition from the CSD, calls the builders and builds the definition in CICS DSA, and updates the CICS global catalog data set for future recovery.

EXEC CICS CREATE builds the same record that would be obtained from the CSD and then calls the builders just like CEDA INSTALL.

EXEC CICS DISCARD calls the builders with a pointer to the TCTTE entry that is to be deleted. The builders then freemain the TCTTE, and remove index entries and the catalog record.

Modules

The builder modules (DFHBS*) are link-edited together into the DFHZCQ load module. DFHZCQ handles all requests for the dynamic add and delete of terminal control resources.

The CSECTs contained in DFHZCQ are listed in Table 1 in Reference: DFHZCQ CSECTs.

Subroutines that are found in the builders are listed in Table 2.
Note: The term node refers either to a TCTTE or to one of its subsidiary parts, such as the NIB descriptor.
Table 2. Builder subroutines
Subroutine Function Description
BSEBUILD BUILD Create the node. For example, obtain the shared storage for the node.
BSECON CONNECT Connect the higher node to the lower. For example, make the TCTTE point to the NIB descriptor.
BSEDESTR DESTROY Abolish a deleted node. For example, free the storage removed from TMP’s chains.
BSEFINDF FINDFIRST Find the first subsidiary node of a higher node. For example, BSFINDF(TCTTE) returns the NIBD being built.
BSEFINDN FINDNEXT Find the next subsidiary node of the one just found. For example, return the address of the next model TCTTE.
BSEFLAT FLATTEN Build the catalog or log record segment for each part of the TCTTE. This is passed back to the caller to create a complete “flattened” TCTTE.
BSEMAKEY MAKEKEY Create a key that is used to write out the new node to the global catalog.
BSENQIRE ENQUIRE The converse of BUILD, it creates a BPS from a TCTTE. The BPS can then be shipped to another system.
BSEREADY READY Make a node ready to use. For example, add to TMP’s chains.
BSERESET RESET Build the TCTTE from the CICS global catalog. (RESET is a cut-down version of UNFLATTEN.)
BSEUNFLA UNFLATTEN Build the TCTTE from the CICS global catalog.
BSEUNRDY UNREADY Check that a node can be deleted. For example, ensure that no AIDs are queued on a TCTTE before deleting.

Not all subroutines are found in all builders. Certain subroutines are required, but do nothing other than return to the caller. The subroutine names are the same in each builder.

In DFHZCQRT, a series of patterns define the flow through the builder modules. See How it works: Patterns.

Exits

No global user exit points are provided for this function.

Trace

Table 3 lists the trace point IDs that are provided for the builder modules.

Table 3. Trace points for the builders
Module Trace point IDs
DFHZCQxx AP FCB0 - FCBF, for which the trace level is 1.
DFHTBSx AP FCC0 - FCC9, for which the trace level is 1.
DFHTBSxP

AP 0630 - 0644, exception trace.

AP FCD0 - FCD9, for which the trace level is 1.

AP FCDA - FCDB, for which the trace level is 2.

DFHTBSS

AP 0620 - 0621, for which the trace level is 1.

AP 0622 - 062E, and 0645 exception trace.

DFHTONR

AP 0648 - 0649, for which the trace level is 1.

AP 064A - 064C, exception trace.

DFHAPRDR

AP 0601 - 0602, for which the trace level is 1.

AP 0603 - 061E, exception trace.

DFHZGTA

AP FA80 - FA81, for which the trace level is 1.

AP FA82 - FA9A, exception trace.

Message set production AP FCDD, exception trace.
DFHBSTZA AP FCDE, exception trace.

Messages

Builder modules issue messages in the DFHZC59xx, DFHZC62xx, and DFHZC63xx series.