• Local Shared Resources (LSR).
NSR and RLS aren’t covered in this article. In the case of LSR, data sets share resources; that is, they share common buffers and control blocks. This tends to reduce the amount of resources needed to support files. In addition, look-aside occurs at all levels and isn’t limited to the index set records as in NSR. With proper buffering, you can avoid any physical I/O operations to satisfy a request and obtain a 100 percent look-aside hit ratio once all the Control Intervals (CIs) have been initially loaded into the LSR buffers. Major VSAM enhancements in CICS previously required assigning the data to LSR. However, some files will work when defined as NSR but not defined as LSR. An example of such a file is one that in the middle of a browse operation (READNEXT) issues a read for update command without having issued the ENDBR command. This will lock the request and could have negative consequences on the CICS system.
You assign a file to LSR by specifying a value of one to eight (or 15 in the case of z/VSE) to the parameter “LSRPOOLID” when defining the VSAM data set using CEDA in CICS. The number indicates the resource share pool to which the file belongs. Entering “NONE” places the file into NSR buffering. There’s a possibility of defining many separate LSR pools in one CICS region. You can’t share resources assigned to one LSR pool with another pool. However, all files you assign to one pool share the resources defined to that pool.
In assigning resources, VSAM uses a Least Recently Used (LRU) algorithm. When a buffer is needed, VSAM assigns the oldest unreferenced buffer to the file. Contents of the buffer are overlaid. If the overlaid CI is needed again, a new buffer must be assigned and the CI physically read from the data set. So, the trick to good look-aside hit ratios is to reference the buffer often to avoid being flushed out of the pool.
Hiperspace buffers are no longer supported by z/OS; any Hiperspace definitions use real storage, causing the buffers to be moved unnecessarily in real storage and simulating an expanded storage move to real storage. These Hiperspace buffers should be redefined as part of the main LSR buffer pool. However, you may be justified in maintaining or defining Hiperspace buffers; if there’s a buffer size for which you may want to define more than 32KB buffers in the same pool, then the only way is to define Hiperspace buffers for that particular buffer size.
LSR pools are built when the first file in a particular pool is opened. If a file in a pool is opened during CICS start-up, the LSR pool is then built. However, if no file is opened during CICS start-up, the LSR pool is built when the first file in the pool is opened. Creating the pool when the file is opened delays the response time for that particular transaction. The resources assigned to the LSR pool can be determined dynamically or statically. You can let CICS determine the amount of resources to be assigned to the pool (dynamic allocation) or prespecify the amount of resources to be assigned to the pool (static allocation).
Dynamic Pool Allocation
Dynamic LSR pool allocation is the easiest method but not necessarily the most optimum. When the first file assigned to the pool is opened, CICS will query the catalog for all files assigned to the pool and allocate the necessary resources. The amount of resources allocated depends on an installation variable, called the SHARELIMIT, which determines how many resources each file will contribute to the pool. The SHARELIMIT is a percentage and defaults to 50 percent but you can increase or decrease the amount in the LSRPOOL definition.
The CICS CEDA definition uses the number of strings assigned to the data set to determine each file’s resource contribution to the pool. The actual process of how the buffers and strings are dynamically allocated can be found in the CICS Performance Guide. Another advantage of having the dynamic capability to create LSR pools is that it provides a fallback position for when files are added to the system with a different LSR pool id from the ones being used. In this case, CICS will allow the files to open and be accessed without having to recycle the system.