To explain what causes data control intervals to become unreferenceable requires an explanation of how a sequence set control interval is structured. Remember that one sequence set control interval governs a single control area in the data component of the VSAM cluster. The following illustration is a sample Sequence Set Control Interval:

Before a data area contains any records, the sequence set record contains only free pointers to the control intervals in the data control area. This lets VSAM know that all of the control intervals are available and ready for use. When VSAM has a request to add a record, it checks to see if there is space available in any of the used control intervals. If it determines that a free control interval must be used to hold the new record, the sequence set is checked to see if there are any available. If there are, the key of the record is compressed and placed in the right side of the sequence set record, along with a pointer to the appropriate data control interval. At the same time, the free pointer is removed from the left side of the sequence set CI. This process repeats itself every time a new control interval is required.
As you can see, each time a free pointer is used, some space is reclaimed from the left side of the sequence set CI, while additional space is used on the right side. The free pointer will always be from one to three characters in length. However, the information that gets added on the right side is almost always larger, since it must contain pointers, compressed keys and control information. So the space in the center of the sequence set CI (labeled free space) slowly gets used up as each new control interval is used in the control area.
Normally this is not a problem, because catalog management tries to not let you define an index control interval size that is too small to reference all of these data control intervals. But there are occasions, however rare, when the keys of the data do not compress as well as expected. When this occurs, there is not enough free space remaining in the sequence set CI to hold the compressed key of the data record. Therefore, even though there are free control intervals in the data area, they cannot be used because the sequence set CI has run out of room to hold the necessary information. This space in the data component effectively becomes dead space.
Obviously this is not a good condition. There are several methods that can be used to rectify this condition, and the best choice depends on the circumstances in your environment. The first alternative is to reorganize your cluster and define it with a larger index control interval size. This will add more free space to the sequence set CIs. Another approach is to increase the data CI size, since this would mean that fewer data control intervals would have to be referenced by the same sized index. The last alternative is to redefine the cluster with different space attributes, such that the control area size would be decreased (see the IBM publication Access Methods Services for a discussion of how space allocation affects control area size). This last approach would be the least desirable from a performance point of view, unless the control area size of the cluster is already less than one cylinder.
You can have encountered a situation that is caused by this very issue during device conversions of VSAM data sets. For example, say you are moving a cluster from a 3350 to a 3380 and the control area size is one cylinder. You archive the cluster and attempt to do a restore, only to get an error message (IDC3009I-212) during the define that says control interval size calculation unsolvable. What occurred is that catalog management failed the define because it is trying to avoid this very situation. Since the control area size is one cylinder, there are now more data control intervals that have to be referenced by the same‑sized index CI, and catalog management decided you would end up with unreferenceable data control intervals. So what was valid for the smaller device is not valid for the larger one. The solution to this problem is the same as the previous one outlined.
|
Copyright © 2015 CA Technologies.
All rights reserved.
|
|