Implementation of the optional DL/I Batch Feed is only required if DL/I Batch jobs update IMS datasbases that require Capture. The DL/I Batch Feed Exit and Feed LogStream together enable the Capture to switch from the capture of on-line changes to DL/I Batch changes and back again once the DL/I Batch Job completes.
The triggering event is the presence of a record in a Feed LogStream that identifies the initiation of a DL/I Batch Job. The Log Capture sees the record and pauses reading the on-line logs and waits for an End-of-Job record in the Feed LogStream which will be present whether or not the DL/I Batch Job ends normally or abnormally. Because it is impossible to determine if the Job ended abnormally, the Capture then reads the DL/I Batch Job's IMS log, processing 99 records until it reaches the end of that log.
If the log ends without a final commit, the Capture adds a roll back record to the LogStream telling the publisher to ignore the last Unit-of-Work. Capture then resumes reading the on-line logs.
To configure DL/I batch feed exit for one or more IMS log captures:
- Create the Batch Feed System LogStream using the IXCMIAPU utility and JCL similar to IXCMDEFL included in the distribution.Note: The name SQDATA.IMSCDC.FEED is used in the following steps and only one is needed in each Environment regardless of the number of log captures in that environment in the same way there is only one IMS RECON in each environment.
- Generate the XPARM module for IMS LOGWRT DL/I Batch Feed Exit SQDAIBLF using CNTL lib member GENXIBLF. There are four parameters in the XPARM but onlyone may need modification, CDCDSNAME must specify the previously created Batch Feed System LogStream. Note: SQDATA.IMSCDC.FEED is used in the sample CNTL lib member.
- Generate the IMS LOGWRT Batch Feed Exit SQDAIBLF using CNTL lib member GENIIBLF.
- Specify the previously created Batch Feed System LogStream in the Capture configuration (CAB) file using the SQDCONF utility and the modify command.
sqdconf modify imscdc.cab
--add-feed=SQDATA.IMSCDC.FEED
- The Batch Feed Exit is a prerequisite to implementation of the optional DL/I Batch Job Exit.
- The XPARM module is not loaded to ECSA by DFSFLGX0. It is found there the first time DFSFLGX0 is called if it was loaded into ECSA by SQDAUPDX (the second step in GENXIBLF). It is not required for the XPARM to be in ECSA, and therefore it is not required to run SQDAUPDX.
- On a system that is frequently IPL'd, it may not be worth the trouble too load the XPARM into ECSA. Instead, just make sure that the XPARM load module is in the IMS RESLIB or some other library that is in the DL/I batch job's STEPLIB or JOBLIB concatenation. If DFSFLGX0 doesn't find the XPARM in ECSA, it will LOAD it from the JOBLIB/STEPLIB.