Managing logging for multiple Data Capture exit routines for a single EXIT= parameter
If a single EXIT= parameter contains multiple Data Capture exit routines, and more than one of them has the LOG attribute specified, IMS writes the data to separate change capture log records in the IMS system log in the order that each exit routine that includes the LOG attribute is specified in the EXIT= parameter.
For example, if an EXIT= parameter is coded as follows:
EXIT=((PRODUCTA, KEY, DATA, CASCADE, LOG), (PRODUCTB, KEY, DATA, NONCASCADE, LOG))
when segments are inserted, updated, or deleted, IMS first records the change data per the exit routine specifications for PRODUCTA in one log record and then the change data for PRODUCTB’s specifications in another.
Separate change capture log records are required, because the products that might consume the change capture log records may not be able to tolerate some of the data logged for the exit options of another product. Use of multiple records with different exit names, as specified in the EXIT= parameter, allows products to only process log records written for their product.
But excessive logging can impact the performance of certain IMS processes. Depending on the products that consume the change capture log records, however, you may be able to take steps to reduce the total amount of log data being written by IMS. If your products can tolerate extra information in the log data, you can try one of the following options.
- Option 1
- If the products can tolerate logged data they do not need, and one product requests all the information the other requires, then the LOG attribute only needs to be included for the product that requests the superset of data needed. For example:
- Option 2
- If the products can tolerate logged data they do not need, but neither requests a superset of information, consider specifying NOLOG on all the named exit routines and adding one with all required options and LOG but no exit name, as in this example: