Determining Structure Size Impact of CF Level Changes


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.
When a structure is allocated, an amount of storage in the structure is taken up with control information. The amount of control information varies depending on a number of things, including the structure type, what the maximum structure size is (as specified on the SIZE keyword in the CFRM policy), and the CF Level. When a structure is allocated in the CF, the storage for the control information is always reserved first, with whatever space is left over being available for the exploiter's use. If you change the CF Level and don't adjust the INITSIZE, the amount of storage required for the control information may change, thereby changing the amount of storage left for the exploiter. Therefore, it is important to adjust the INITSIZE to ensure that the amount of storage in the structure that is available to the exploiter remains the same with the new CF Level as it was previously.
    One way to determine the appropriate size for a structure is to use the CF Sizer too, which is available on the Web at:

    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.
    An alternative is to wait until the CF Level is upgraded and make the adjustments at that time. The steps described below use this methodology, and support any-to-any CF Level changes (even moving to a lower CF Level). They also give precise numbers for your particular configuration.
      Note: APAR OW43778 changed the way new structure instances are allocated when a structure is rebuilt. Rather than using the INITSIZE as defined in the CFRM policy, OW43778 will cause the structure to be defined with whatever size is necessary to accommodate the number of entries, elements, and other structure objects that are in the current instance. So, even if the INITSIZE is too small to provide the required storage in the new CFLevel, the rebuild should still complete successfully. The problem arises when the structure is subsequently deleted and reallocated. At that time, the INITSIZE of the structure will be used to decide how large the structure should be. For this reason, it is vital that the INITSIZE reflects the actual storage requirement for the structure in the target CF.

      The process consists of the following steps:
      1. 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).
      2. 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.
      3. 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 name
        CF this structure resides in
        ACTUAL size in old CF
        ACTUAL size in new CF
      4. 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.
      5. Upgrade the CF Level.
      6. 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.
      7. 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 will ensure that all the structures that normally reside in the upgraded CF will have as much usable space with the new CF Level as they had with the old one.
          Should you have to rebuild all the structures into the higher level CF before both CFs have been updated, OW43778 should ensure that the rebuild is successful, even though you have not adjusted the size of the structures that still reside in the other CF. However, you must ensure that you either move those structures back to their "NORMAL" CF before they are deleted and reallocated, or else adjust the sizes in the CFRM policy using the same methodology as above.
            When you are ready to change the CF Level of the other CF, follow the steps listed above to adjust the INITSIZE and SIZE values for each structure that will be affected.
              Note that while IBM support different CF Levels coexisting in the same sysplex, we do not recommend running in this configuration for an extended period of time. In particular, you must be especially careful to ensure that you do not exploit functions that are only available in one of the CFs.

              Special Notices

              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.


              Publish Date
              13 May 2003

              Rating: Not yet rated


              IBM Form Number