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.
- 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.
| 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.
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.
| 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.
| 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.