When you run a source-based commit session, the Integration Service generates commits at all source qualifiers and transformations that do not propagate transaction boundaries. This includes the following active sources:
Source Qualifier
Application Source Qualifier
MQ Source Qualifier
XML Source Qualifier when you only connect ports from one output group
Normalizer (VSAM)
Aggregator with the All Input transformation scope
Joiner with the All Input transformation scope
Rank with the All Input transformation scope
Sorter with the All Input transformation scope
Custom with one output group and with the All Input transformation scope
A multiple input group transformation with one output group connected to multiple upstream transaction control points
Mapplet, if it contains one of the above transformations
A mapping can have one or more target load order groups, and a target load order group can have one or more active sources that generate commits. The Integration Service uses the commits generated by the active source that is closest to the target definition. This is known as the commit source.
The following figure shows a mapping with a single commit source:
The mapping contains a Source Qualifier transformation and an Aggregator transformation with the All Input transformation scope. The Aggregator transformation is closer to the targets than the Source Qualifier transformation and is therefore used as the commit source for the source-based commit session.
The following figure shows a mapping with multiple commit sources:
The mapping contains a target load order group with one source pipeline that branches from the Source Qualifier transformation to two targets. One pipeline branch contains an Aggregator transformation with the All Input transformation scope, and the other contains an Expression transformation. The Integration Service identifies the Source Qualifier transformation as the commit source for t_monthly_sales and the Aggregator as the commit source for T_COMPANY_ALL. It performs a source-based commit for both targets, but uses a different commit source for each.