Special considerations for COBOL users and SMB - VSAM

This was added to provide some insight for COBOL users.

COBOL users take note

Try to keep in mind is that COBOL is written for NSR processing. If anything is done to switch the processing to LSR (whether OEM, SMB or BLSR), the program or COBOL may not be able to handle it. The good news is that SMB can be disabled for a particular program by coding an override on the DD card and letting other files that access the dataset continue to use SMB. The most common problem is a positioning error. With NSR processing, implicit positioning by VSAM to the first record in the file is done on the first sequential GET. Many programs (especially older ones) take advantage of this and do not explicitly position to the first record of the file. With LSR, there is no implicit positioning done so if the program does not position, the same GET that worked with NSR will be returned with a rc58. This translates into a COBOL SK30. This should be minimal since SMB won't decide to do DO processing on a file that is opened with sequential. The other very common problem is waits/hangs. This is also due to the inherent differences between NSR and LSR. With NSR you may have multiple requests in the pool accessing the same data CI, because a copy of the CI will be given to each request. In LSR, you can have multiple requests reading the same CI (they will all share the same buffer rather than get their own copy), but a request for update of that CI must wait until all the readers have finished with it. This can cause hangs. There are a number of possible circumvention for this. It depends on what the program is doing and in what order. If, for example, if the program has two ACB's, it could open the sequential ACB first then DO would not be selected. Another possible problem could be very old programs that were written for ISAM datasets. If the customer has been using the VSAM/ISAM interface to continue to use these programs, they must continue to use NSR.

Again, the impact should be minimal as the ACB probably has sequential specified. Some SMB users, not just COBOL, are finding that they need to increase their region size when running SMB because of the extra storage required to optimize the buffering. This is especially true on large files or programs that open many SMB VSAM files. In general, SMB is pretty "smart" and the user should see a good deal of performance benefits from using SMB, however, it still comes down to some applications might need minor JCL or coding changes to use SMB.


All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

VSAM Topics