Dataloader/MP Reference Manual
Table Of Contents
- What’s New in This Manual
- About This Manual
- 1 Introduction to DataLoader/MP
- 2 DataLoader/MP Components
- 3 Running DataLoader/MP
- 4 Specifying File-Related Options for DataLoader/MP
- 5 Creating a Customized Version of DataLoader/MP
- User Exits
- User Exit Descriptions
- BUILDKEY
- CHECKARG
- CONVERTIT
- DELETEIT
- DONEWITHTRANSACTION
- EXITSDESCRIPTION
- GETNEXTRECORD
- INITIALIZE1
- INITIALIZE2
- INSERTIT
- INSTRUCTIONS
- MISC1, MISC2, MISC3, and MISC4
- NEWTRANSACTION
- NEXTINDIRECTFILE
- SKIPPING
- STATISTICSTIME
- TERMINATING
- T0330U00_DEFAULTEXITS_C
- T0330U00-DEFAULTEXITS-COBOL
- T7900D41_DEFAULTEXITS_C
- T7900V00-DEFAULTEXITS-COBOL
- UPDATEIT
- Default User Exits
- DataLoader/MP Library
- The MAKE Routine for NM DataLoader/MP
- The MAKE Routine for Nonnative Mode DataLoader/MP
- 6 DataLoader/MP Examples
- 7 Recovery Strategies
- A Error and Warning Messages
- B Processing Flowcharts
- C C-Only Error Functions
- Index

Recovery Strategies
DataLoader/MP Reference Manual—424148-003
7-7
Batch Totals
Suppose a process is writing to DataLoader/MP using the process name of the
DataLoader/MP process. When that process terminates, DataLoader/MP will receive
an end of file on its $RECEIVE file whether that process terminated normally or
abnormally. DataLoader/MP then ends normally even though it has not read all of the
input data, which will make a rerun necessary. If you have purged the restart file, you
will not be able to rerun DataLoader/MP.
When you set up your load scenario using restarting from a known state, plan carefully
how you will determine if DataLoader/MP has completed its job and when you can
safely purge the restart file.
Batch Totals
When performing a load job, you commonly accumulate batch totals of such things as
record counts, total dollar amounts, total units sold, and so on. These batch totals can
be used to confirm the integrity of the load operation. How can such batch totals be
accumulated for situations in which the batch is not applied to the database in one
continuous operation?
DataLoader/MP provides a user exit, SKIPPING, for restarting from a known state.
When DataLoader/MP performs a restart and skips records that have already been
applied to the database, it calls SKIPPING for each record with an indication of why it
is skipping the record. You will need to include code in this exit to update the batch
totals for the skipped records exactly as if DataLoader/MP had applied the record.
When DataLoader/MP has skipped the necessary number of records, it begins to
process records in the normal way by calling the appropriate user exits and adds to the
batch totals as the restarted DataLoader/MP applies the record. When DataLoader/MP
terminates successfully, these batch totals are output in the TERMINATING user exit.
When you are restarting from an unknown state, DataLoader/MP cannot alert the user
exit code as to which records have already been processed. If you use batch totals
only to check that the input records match what the source of the data specifies the
totals should be, it makes no difference which records were processed earlier. Your
user exit code will receive all the records again, so you would compute the batch totals
the same way as on the initial run, without regard to whether the database change that
was made using a given record succeeded or failed.
But if you intend to use batch totals to summarize the change that the job made to the
database or to summarize how much of the input data failed to update the database,
that simple approach will not give valid totals. You may need to use the approach of
including a LOAD_ID column in the database, as described under Restarting From An
Unknown State on page 7-4.
Multi-Process Considerations
What is a failure in a situation where an application consists of multiple processes? If
one process fails should the others continue running? DataLoader/MP uses the
strategy with the simplest restart state. If recovery is not simple and obvious, the