gtpd1m2z | Database Reference |
The allocation of a CF structure depends on the following factors:
The request of the application for CF structure allocation, combined with the storage usage requirements of the control code, ultimately determines if, where, and how large a CF structure is allocated.
When the CF structure is allocated successfully, the TPF system sets a return code of zero and the ICFCAACONNALLOC bit in the CFCONC answer area is set to indicate that the connection caused the CF structure to be allocated. However, you still must verify that the structure attributes finally assigned to the CF structure are acceptable.
The CFCONC answer area for a CF structure contains:
The requested size of the CF structure is specified on the CFCONC macro using the STRSIZE parameter. The actual size of the CF structure allocated is returned in the ICFCAASTRSIZE field of the CFCONC answer area. See the S/390 Processor Resource/Systems Manager Planning Guide for more information about calculating the size of the CF structure. See Specifying Structure Attributes for Coupling Facility Structures for more information about the STRSIZE parameter. See TPF System Macros for more information about the CFCONC macro.
The CF ensures that the size of a CF structure is a multiple of the CF storage increment. See Coupling Facility Storage Increment for more information. If not, the CF rounds up the size value to be a multiple of the increment. Ultimately, the actual size of the CF structure allocated is based on storage allocation priorities that comply with the CF control code and on storage constraints in the CF itself. See Coupling Facility Considerations for more information about these CF allocation considerations.
CF structure size includes both control areas required by the CF control code and data areas used by the application. The size is also affected by CF allocation rules and the CF allocation increment size, which is a function of the CF level.
You must take all these factors into consideration when determining how to configure your CF.
There are two types of storage in a CF:
The CF control code uses each type of storage for a specific purpose. Essentially, the CF control code usescontrol storage either for its control information or for data, and the noncontrol storage only for data. Depending on the particular processor on which the CF is defined, the storage can be all control storage or a combination of control and noncontrol storage. You control the amount of storage assigned to control and noncontrol storage when you configure the amount of central and expanded storage in the CF. The amount of central storage equates to the amount of control storage; the amount of expanded storage equates to the amount of noncontrol storage. In processors that do not support the concept of central and expanded storage, all CF storage is considered to be control storage.
The division of control storage and noncontrol storage becomes a consideration when the CF control code allocates specific amounts of storage to a CF structure. The division between the two storage types must be considered to ensure that the CF storage is distributed most effectively for use by the application.
A CF structure is allocated at a certain size based on characteristics of the CF itself, such as storage constraints and the storage increment.
The CF control code locates parts of a CF structure in either control storage or noncontrol storage depending on whether the part is control information or data. Control information must reside in control storage and cannot reside in noncontrol storage; data may reside in either control storage or noncontrol storage.
The amount of control storage available can affect the allocation of CF structures. When there is no control storage available in the CF, control information, such as list entry controls or directory entries, cannot be allocated (even though there may be ample available noncontrol storage in the CF structure).
The following summarizes the actions taken when there is no more available control storage in a CF structure:
Even though the total requested CF structure size may not be reached when the ratio of 1 divided by the MAXELEMNUM parameter value is reached, additional data elements are not allocated.
CF storage is allocated in multiples of the CF model-dependent storage increment size. For CF level 6, all CF structure allocations are rounded up to a multiple of 256 KB.
Each time you successfully issue the CFCONC macro for a CF structure, the TPF system places a connect token in the CFCONC answer area. The connect token identifies each connection to the CF structure and is unique for a connection in the processor configuration. You can issue the CFCONC macro from any TPF system in the processor configuration that is connected to the CF.
Figure 58 shows task 1 allocating a CF structure for the first time.
Figure 58. Allocating a CF Structure
In Figure 59, task 2 connects to the same CF structure.
Figure 59. Connecting to an Allocated CF Structure
Each connector, whether it is the first connector or a subsequent connector to a CF structure, must verify that the structure attributes are acceptable.
If you find that the structure attributes are not acceptable, you can disconnect from the CF structure using the CFDISC macro. See Disconnecting from a Coupling Facility Structure for more information.