Sie sind auf Seite 1von 2

Understanding Commit Points Overview A commit interval is the interval at which the Integration Service commits data to targets

during a session. The commit point can be a factor of the commit interva l, the commit interval type, and the size of the buffer blocks. The commit interval is the number of rows you want to use as a basis for the commit point. The commit interval type is the type of rows that you want to use as a basis for the commit point. You can choose between the following commit types: Target-based commit. The Integration Service commits data based on the number of target rows and the key constraints on the target table. The commit point also depends on the buffer block size, the commit interval, and the Integration Service configuration for writer timeout. Source-based commit. The Integration Service commits data based on the number of source rows. The commit point is the commit interval you configure in the session properties. User-defined commit. The Integration Service commits data based on transactions defined in the mapping properties. You can also configure some commit and rollback options in the session properties. Source-based and user-defined commit sessions have partitioning restrictions. If you configure a session with multiple partitions to use source-based or userdefi ned commit, you can choose pass-through partitioning at certain partition points in a pipeline. Target-Based Commits During a target-based commit session, the Integration Service commits rows based on the number of target rows and the key constraints on the target table. The commit point depends on the following factors: Commit interval. The number of rows you want to use as a basis for commits. Configure the target commit interval in the session properties. Writer wait timeout. The amount of time the writer waits before it issues a commit. Configure the writer wait timeout in the Integration Service setup. Buffer blocks. Blocks of memory that hold rows of data during a session. You can configure the buffer block size in the session properties, but you cannot configure the number of rows the block holds. When you run a target-based commit session, the Integration Service may issue a commit before, on, or after, the configured commit interval. The Integration Service uses the following process to issue commits: When the Integration Service reaches a commit interval, it continues to fill the writer buffer block. When the writer buffer block fills, the Integration Service issues a commit. If the writer buffer fills before the commit interval, the Integration Service w rites to the target, but waits to issue a commit. It issues a commit when one of the following conditions is true: The writer is idle for the amount of time specified by the Integration Service writer wait timeout option. The Integration Service reaches the commit interval and fills another writer buffer. Source-Based Commits During a source-based commit session, the Integration Service commits data to the target based on the number of rows from some active sources in a target load order group. These rows are referred to as source rows. When the Integration Service runs a source-based commit session, it identifies commit source for each pipeline in the mapping. The Integration Service generates a commit row from these active sources at every commit interval. The Integration Service writes the name of the transformation used for source-based

commit intervals into the session log: Source-based commit interval based on... TRANSFORMATION_NAME The Integration Service might commit less rows to the target than the number of rows produced by the active source. For example, you have a source-based commit session that passes 10,000 rows through an active source, and 3,000 rows are dropped due to transformation logic. The Integration Service issues a commit to the target when the 7,000 remaining rows reach the target. The number of rows held in the writer buffers does not affect the commit point f or a source-based commit session. For example, you have a source-based commit session that passes 10,000 rows through an active source. When those 10,000 rows reach the targets, the Integration Service issues a commit. If the session completes successfully, the Integration Service issues commits after 10,000, 20,000, 30,000, and 40,000 source rows. If the targets are in the same transaction control unit, the Integration Service commits data to the targets at the same time. If the session fails or aborts, th e Integration Service rolls back all uncommitted data in a transaction control uni t to the same source row. If the targets are in different transaction control units, the Integration Servi ce performs the commit when each target receives the commit row. If the session fails or aborts, the Integration Service rolls back each target to the last comm it point. It might not roll back

Das könnte Ihnen auch gefallen