Determining the jobs and programs that should be included in the conversion project required identifying certain characteristics that would indicate whether IMS was being used by the program or job (such as naming standards used specifically for IMS application elements and IMS-specific syntax).
Performing a simple source search for IMS activity couldn’t directly identify all IMS programs for several reasons:
• Most IMS activity occurred in copybooks to standardize the processing. Each IMS segment was accessed and updated by a separate set of copybooks (e.g., copybooks to perform reads, deletes, add new segments, etc.). It was necessary to find all programs that used these copybooks.
• IMS databases were sometimes unloaded using an IMS utility. Programs using IMS segment layouts processed the resulting data as sequential data.
• Only a handful of online programs directly accessed IMS and performed all the IMS I/O. These programs passed IMS information in the commarea to other online programs. All online programs that used this commarea, or used copybooks for segment layouts, needed to be converted.
• Some programs used IMS index files as VSAM files instead of using IMS functions to access the data.
We looked for these characteristics:
• Customer-specific applications using IMS: Some jobs and programs used a naming standard to tie them to an application that used IMS.
• Identifying characteristics of IMS activity in program and copybook source: We looked for calls to CBLTDLI (COBOL and Assembler languages) and for application copybooks used to define segment fields for the programs and to execute IMS functions (get unique, get next, insert, delete, replace).
• Identifying characteristics of IMS activity in JCL and procedure (proc) libraries: This included JCL or proc that used data sets beginning with IMS.* or local high-level qualifier, JCL or proc executed by program DFSRRC00, and JCL or proc that executed an IMS utility program ( e.g . , DFSURG* , DFSUDMP0, DFSURPP0).