This tip provides a methodology for accurately sizing the changes in a CF structure's storage requirements as a result of a change in CF Level.
When moving to a new CF Level, it is very important that structures are defined with appropriate sizes. Undersizing a structure can result in poor performance and potentially even availability issues, while over-specifying the size of a structure can result in wasted CF storage. As new Coupling Facility functions and capabilities are introduced, the storage requirements of CF structures can change, usually increasing in size.
Because there are many ways a structure can be defined, and there are a number of different structure types, the effect of the change can vary significantly from one structure to another. There are three parameters in the CFRM policy that relate to the size of a structure:
- INITSIZE This specifies how much storage should be allocated for the structure when it is first allocated in the CF.
- SIZE This specifies the largest this structure can grow to. If INITSIZE is not specified, SIZE specifies how much storage should be allocated for the structure when it is first allocated in the CF.
- MINSIZE This specifies the smallest size that this structure can be reduced to if XCF has to reclaim storage in the CF.
While this tool is easy to use, it has some drawbacks:
- In order to keep the tool easy to use, some assumptions have to be made. This results in numbers that may not be ideal for your particular configuration.
- The Sizer only provides estimates for the latest available CF Level. So, if the latest available level is CF Level 12, and you want to move from CF Level 9 to CF Level 11, the estimates the Sizer provides will be based on a CF Level 12 CF rather than CF Level 11.
The process consists of the following steps:
- Ensure that none of your structures are in a Policy Change Pending state. You can check this by doing a D XCF,STR and checking the status of each structure. If you find any structures that do have this status, you should clear it by rebuilding that structure at a convenient time. In order for this procedure to work, it is imperative that you do not proceed to the next step while structures are in this state. Also, note that for this procedure to work for a structure, that structure must be allocated. Therefore, run this procedure at a time when all the structures that you normally use are allocated (CICS structures, Logger structures, and so on).
- Ensure that your current structure sizes are appropriate. The methodology documented here will ensure that your structures contain the same amount of usable space on the new CF Level as they did on the old. However, if the structure is currently undersized, it will still be undersized at the end of this procedure.
- Check and record the current ACTUAL size for all structures in the CF that you plan to upgrade (using the D XCF,STR,STRNM=structure_name command). You might create a table like the following example, recording the information for each of your structures:
Structure nameCF this structure resides inACTUAL size in old CFACTUAL size in new CF
IXC_DEFAULT_001 CF01 10240 IXC_DEFAULT_002 CF02 10240 ISGLOCK CF01 32756 etc etc
- Move everything out of the CF to be upgraded (using the SETXCF START,RB,CFNAME=cf_name,LOC=OTHER command and the SETXCF STOP,RB,DUPLEX,CFNM=cf_name command for duplexed structures). Remember that the XCF signalling structures must be moved individually. Do a D XCF,CF,CFNM=cf_name to ensure that all structures have been moved out of the CF.
- Upgrade the CF Level.
- Move structures back into the upgraded CF, checking the new ACTUAL size for each structure after you move it. The easiest way to move all the structures back into a CF is to use the SETXCF START,RB,POPCF=target_cfname command. Update the CFRM policy so that the INITSIZE matches the new ACTUAL size, and make the SIZE 1.5 times that value.
- When you have finished repopulating the CF, start the new policy containing the adjusted INITSIZE and SIZE values by using the SETXCF START,POLICY,TYPE=CFRM,POLNM=policy_name command.
This material has not been submitted to any formal IBM test and is published AS IS. It has not been the subject of rigorous review. IBM assumes no responsibility for its accuracy or completeness. The use of this information or the implementation of any of these techniques is a client responsibility and depends upon the client's ability to evaluate and integrate them into the client's operational environment.