When the Integration Service reaches the commit point for all targets in a transaction control unit, it issues commits sequentially for each target. If the commit fails for any target connection group within a transaction control unit, the Integration Service rolls back all data to the last successful commit point. The Integration Service cannot roll back committed transactions, but it does write the transactions to the reject file.
For example, you create a mapping with one transaction control unit and three target connection groups. The target names contain information about the target connection group. TCG1_T1 represents the first target connection group and the first target.
The following figure shows Integration Service behavior when it rolls back on a failed commit:
The Integration Service uses the following logic when it processes the mapping:
The Integration Service reaches the third commit point for all targets.
It begins to issue commits sequentially for each target.
The Integration Service successfully commits to TCG1_T1 and TCG1_T2.
The commit fails for TCG2_T3.
The Integration Service does not issue a commit for TCG3_T4.
The Integration Service rolls back TCG2_T3 and TCG3_T4 to the second commit point, but it cannot roll back TCG1_T1 and TCG1_T2 to the second commit point because it successfully committed at the third commit point.
The Integration Service writes the rows to the reject file from TCG2_T3 and TCG3_T4. These are the rollback rows associated with the third commit point.
The Integration Service writes the row to the reject file from TCG_T1 and TCG1_T2. These are the commit rows associated with the third commit point.
The following table describes row indicators in the reject file for committed transactions in a failed transaction control unit: