- Performing a full or partial Initial load of a target datastore from an IMS source datastore
- Integrating scheduled refreshes with on-going Change Data Capture
- Facilitate downstream implementation of changes to source IMS database structures
The Unload utility, runs with a user supplied PSB and it's specified Processing option (PROCOPT), which is typically "GO". It merely reads the entire database from top to bottom, traversing each hierarchy of segments under a root segment as it goes. The Unload utility does not perform either SYNC or CHKP calls and therefore cannot be restarted if it encounters an issue resulting in for example an IMS "GG" return code (RC) indicating that a concurrent on-line update has modified the database preventing a successful Get Next (GN) read. For this reason Precisely recommends running the Utility when on-line database activity is either suspended or infrequent.
It does create multiple units of work for processing on the Engine side but Precisely cannot guarantee sequence is maintained when using a single logstream, publisher and Apply Engine. For this reason while it is possible to use the existing infrastructure: LogStream, Publisher and Apply Engine IF ALL CONCURRENT IMS APPLICATION DATABASE ACTIVITY IS STOPPED, it is not recommended.
The recommended solution is as follows: The Unload Utility JCL needs to specify a different LogStream that is read by a second Publisher that connects to a second Apply Engine. The "Unload" LogStream, Publisher and Apply Engine will only need to be configured once and may be used for multiple IMS DBD's that require initial load or refresh. If new IMS DBD's are being added they will have to be added to both the normal CDC Publisher and Unload Publisher.
This approach makes use of the existing Connect CDC SQData infrastructure: Capture Controller daemon on zOS and Engine Controller daemon; and cloned versions of CDCzLog Publishers and Apply Engines to transport, cleanse and transform the unloaded IMS data. This eliminates the need for special "Unload Engines", File transfer processing and the use of Target datastore Load Utilities.
Either approach when used to refresh the target must consider what happens to the data already present in the target because no deletes will be generated. The target may still contain data that has been previously deleted from the source. Rows in an RDBMS target will be current for all keys unloaded, all other rows in the target may remain.
- The IMS Unload Utility is recommended over using Unload Engines.
- The scheduling aspect of either approach is the same but the infrastructure is already in place for CDC and will basically be cloned for the Unload Utility.
- Overall performance will be better with the Unload Utility since fewer steps are required.
- The total elapsed time will be reduced and there will be fewer points of possible failure.
- This will operate in an HA configuration.