After the restart information for every source is determined, PWXPC:
Flushes the restart tokens to the state tables for relational targets and to the state file for nonrelational targets
Writes an empty restart token file
Creates the initialization restart token file containing the reconciled restart information
PWXPC passes the restart tokens for all sources to PowerExchange. PowerExchange uses the oldest restart token passed by PWXPC to start extracting data from the change stream. PowerExchange does not pass data for a source until its restart point is reached. This prevents targets from being updated with records processed in previous extraction runs.
PWXPC continually updates the restart tokens for each source in the state table or the state file as it issues flushes target data. With relational target tables in the same database, the PowerCenter Integration Service updates both the target tables and the restart tokens within a single commit. The PowerCenter Integration Service does separate commits for each unique relational database. With heterogeneous targets, the restart tokens in one relational database may differ from those in another relational database at specific points in time.
When you use nonrelational targets, the state file and the targets likely exist on completely different machines. With nonrelational targets, the PowerCenter Integration Service updates the targets and the state file in separate operations. If the session fails after the PowerCenter Integration Service commits data to the target but before it updates the restart tokens in the state file, targets may receive duplicate data when restarted. On warm start, PWXPC uses the last restart tokens written prior to the failure. As a result, PWXPC re-sends data which has already been applied to the nonrelational targets.