Is it possible to share a VSAM file between CICS and batch processing for update? If so, how difficult is it to set up?
IBM's answer would be Transactional VSAM (TVS). TVS, which is based on record-level sharing (RLS), enables VSAM files to be shared between batch and online just like DB2. However, you must go through the exercise of changing your batch processing to include checkpoints and restart recovery. You also have to set up the log streams for the cluster and write or purchase software for dataset recovery. TVS is fairly new and comes with its own sets of operating system requisites so it's going to have growing pains. Given all this, coupled with the added expense of purchasing TVS, I'd advise changing the application to use DB2 if you have the source code and the manpower to dedicate to it.
There are also some products on the market that allow you to update online files from batch. The ones I've seen work by redirecting the I/O request from the batch program and to CICS. On CICS there is a service or mirror transaction that actually performs the I/O. Some of these products work without any change to a batch program. I've seen this work successfully in my shop for many years. However, you still have to be careful about a batch program overwhelming CICS or holding file locks that delay online transactions.
Dig Deeper on IBM system z and mainframe systems