The Magic of the IDIPARM Global Options dataset
All CA IMS tools are using Function-related execution options, which either will be provided within a job step using a tool-specific DD statement,
or by picking them up from a common Global Options dataset using the IDIPARM DD statement.
When using Global Options?
When the majority of job steps for a specific IMS tool is using the same execution option, this option should be added to an appropriate
Global Options member on the Global Options dataset - e.g.
IIRRECORD=YES to write report field contents into the IIR Repository (for details regarding the IMS tools IIR Repository see:)
How to override Global Options?
Just using the same Global Option as an execution option in the tool's options DD statement overrides the option being used on the
Global Option dataset (i.e. IIRRECORD=NO).
How does the specific IMS tool find it's related Global Options member?
When being started, each tool is looking to the Global Options dataset for a member which has a tool- and function-specific member name
(e.g. DBOUNLD for DBO Unload and DBORELD for DBO Reload) -
for a list of all tool/function-specific Global Options member names see
What finally is Magic with the Global Options dataset?
Try it yourself and run the CA IMS DBCOPY tool using execution options CHECK=YES (to invoke the Database Analyzer tool for pointer checking) and IIRRECORD=YES (to write report field contents into the IIR Repository), and then check the contents of the IIR Repository: The appropriate report information from DBCOPY is all written to IIR, but the more meaningful information from DBA is completely missing.
And now just add option IIRRECORD=YES to member DBAANALZ on the IDIPARM Global options dataset, rerun your DBCOPY job step,
re-check the IIR Repository - and here is the Magic :
All information from DBA now has been written to the Repository!
And this is how the Magic works: Each IMS tool is looking for a specific Global Options member not only when being explicitly executed, but also when being invoked by another IMS tool.
Actually all execution options which need to be used with an IMS tool being invoked by another IMS tool, only can be passed to the invoked tool by using them in the tools/function-related Global Options member.
//IC EXEC PGM=IDIDBO,REGION=4M
//STEPLIB DD DISP=SHR,DSN=imstools.CIMTLOAD
// DD DISP=SHR,DSN=datacom.cuslib
// DD DISP=SHR,DSN=datacom.loadlib
// DD DISP=SHR,DSN=ims.reslib
//... DD ...
//DBOCTRL DD *
//IDIPARM DD DISP=SHR,DSN=imstools.parmlib
Content of member DBAANALZ on imstools.parmlib: