1、Transaction Control 组件Active输入输出行数不同Connected连接组件组件概述组件概述PowerCenter 可以根据流经过 Transaction Control 组件的一组数据来控制事务的操作类型:提交或者回滚。事务包含受限于提交或者回滚的数据行。可以通过输入行中一个变化的数值来定义一个事务,也可以通过一组已经排序了的数据来定义一个事务,比如员工 id、日期。在PowerCenter中,可以应用Transaction Control组件在mapping或者session中:Mapping:在 mapping 中,通过 Transaction Control 组件
2、定义一个事务。在组件中根据一个表达式定义一个事务。根据表达式的返回值,可以选择 commit、roll back 或者 continue 不做任何变化。Session:在配置 session 的时候可以自己定义事务。在 Integration Service 向目标中写数据失败时,可以选择提交或者回滚。在执行 session 的时候,Integration Service 判断组件输入的每一行,当输入行事务类型为 commit 时,Integration Service 提交所有行至目标。当输入行事务类型为回滚时,Integration Service 从目标中回滚该事务的所有行。如果 map
3、ping 的目标为文件时,Integration Service 每开始一个新的事务时生成一个新的动态命名的输出文件。Note:也可以通过其他的组件属性来定义事务。组件属性组件属性使用 Transaction Control组件定义事务目标的提交、回滚条件。事务目标包含:relational,XML,and dynamic MQSeries。在 Properties tab 中控制表达式中定义以下参数,事务是一行或者一组数据,受限于提交或者回滚行。每个事务的行数是变化的。Transformation tab:在这个 tab 中可以重命名组件名称和增加组件说明Ports tab:增加输入输出端口
4、Properties tab:定义事务控制表达式,标志出:commit,roll back,or no actionMetadata Extensions tab:You can extend the metadata stored in the repository by associating information with the Transaction Control transformation.Properties TabProperties Tab通过该 tab 可以定义以下两个属性:Transaction control expressionTracing level事务控制
5、表达式使用 IIF 函数来检查每一行是否满足条件。表达式用法如下:IIF(condition,value1,value2)表达式包含了集成服务平台根据条件返回值确定的事务操作标志。Integration Service 基于每一行进行判断的原则,返回值表明 Integration Service 对该行数据是否 commit、rollback 或是不做任何变化。当 Integration Service 根据返回值进行了 commit 或者 rollback 操作后,会重新开始一个事务。事务控制表达式中可以使用如下内建变量:TC_CONTINUE_TRANSACTION:Integration
6、 Service 对输入行不做任何操作。该值是表达式的默认值。TC_COMMIT_BEFORE:Integration Service 首先提交事务,并开始一个新的事务,然后将当前行写到目标中。当前行处在新的事务中,并没有被提交。TC_COMMIT_AFTER:Integration Service 将当前行写到目标中,然后提交事务,再重新开启一个新的事务。当前被提交至目标中。TC_ROLLBACK_BEFORE:Integration Service 回滚当前事务,然后重新开始一个新事务,然后将当前行写入到目标表中。当前行处于新的事务中。TC_ROLLBACK_AFTER:Integration Service 先将当前行写入到目标表中,然后回滚当前事务,再重新开启一个新的事务。当前行处于 rollback 事务中被回滚。如果事务控制表达式返回的值超出以上范围,Integration Service 会将 session 失败。目标表的目标表的 load type 不可以设置为不可以设置为 bulk,否则报错:,否则报错:ORA-24795:试图执行非法的:试图执行非法的 rollback南京正一信息科技有限公司胡方伟2014-8-12