Table of Contents

Search

  1. Preface
  2. Working with Transformations
  3. Aggregator Transformation
  4. Custom Transformation
  5. Custom Transformation Functions
  6. Data Masking Transformation
  7. Data Masking Examples
  8. Expression Transformation
  9. External Procedure Transformation
  10. Filter Transformation
  11. HTTP Transformation
  12. Identity Resolution Transformation
  13. Java Transformation
  14. Java Transformation API Reference
  15. Java Expressions
  16. Java Transformation Example
  17. Joiner Transformation
  18. Lookup Transformation
  19. Lookup Caches
  20. Dynamic Lookup Cache
  21. Normalizer Transformation
  22. Rank Transformation
  23. Router Transformation
  24. Sequence Generator Transformation
  25. Sorter Transformation
  26. Source Qualifier Transformation
  27. SQL Transformation
  28. Using the SQL Transformation in a Mapping
  29. Stored Procedure Transformation
  30. Transaction Control Transformation
  31. Union Transformation
  32. Unstructured Data Transformation
  33. Update Strategy Transformation
  34. XML Transformations

Transformation Guide

Transformation Guide

Sample Transaction Control Mappings with Multiple Targets

Sample Transaction Control Mappings with Multiple Targets

A Transaction Control transformation may be effective for one target and ineffective for another target.
If each target is connected to an effective Transaction Control transformation, the mapping is valid. If one target in the mapping is not connected to an effective Transaction Control transformation, the mapping is invalid.
The following figure shows a valid mapping with both an ineffective and an effective Transaction Control transformation:
The mapping contains two pipelines. The pipelines branch at TransactionControl1, which occurs after a source and source qualifier. The first branch contains Expression1 and Target1. The second branch contains an Aggregator transformation, Expression2, Transaction Control2, and Target2.
The Integration Service processes TransactionControl1, evaluates the transaction control expression, and creates transaction boundaries. The mapping does not include any transformation that drops transaction boundaries between TransactionControl1 and Target1, making TransactionControl1 effective for Target1. The Integration Service uses the transaction boundaries defined by TransactionControl1 for Target1.
However, the mapping includes a transformation that drops transaction boundaries between TransactionControl1 and Target2, making TransactionControl1 ineffective for Target2. When the Integration Service processes Aggregator2, with Transformation Scope set to All Input, it drops the transaction boundaries defined by TransactionControl1 and outputs all rows in an open transaction. Then the Integration Service evaluates TransactionControl2, creates transaction boundaries, and uses them for Target2.
If a roll back occurs in TransactionControl1, the Integration Service rolls back only rows from Target1. It does not roll back any rows from Target2.
The following figure shows an invalid mapping with both an ineffective and an effective Transaction Control transformation:
The mapping contains two pipelines. The pipelines branch at TCT_mapplet, which occurs after a source and source qualifier. The first branch contains Aggregator1 and Target1. The second branch contains Aggregator2, and Expression transformation, TransactionControl2, and Target2.
The mapplet, TCT_mapplet, contains a Transaction Control transformation. It is ineffective for Target1 and Target2. The Aggregator1 transformation Transformation Scope property is All Input. It is an active source for Target1. The Aggregator2 transformation Transformation Scope property is All Input. It is an active source for Target2. The TransactionControl2 transformation is effective for Target2.
The mapping is invalid because Target1 is not connected to an effective Transaction Control transformation.

0 COMMENTS

We’d like to hear from you!