[BTS]SqlAdapter批量数据导入

本文介绍如何使用BizTalk批量导入数据到SQL Server数据库的方法,包括创建BizTalk项目、使用SqlAdapter、设置Updategram以及自定义Schema等内容,并探讨了事务处理机制。

任务要求:批量导入数据到数据中的一个表


创建Account表(模拟将要导入数据的表)
SqlAdapter批量数据导入

创建BizTalk项目
SqlAdapter批量数据导入 

填加SqlAdapter
SqlAdapter批量数据导入 

这里因为是批量的数据导入,使用Updategram。
SqlAdapter批量数据导入 

插入
SqlAdapter批量数据导入 

这是生成的Schema
SqlAdapter批量数据导入 

因为只是为了测试,这里,我自定义了一个Schema,它将导入到上面的表中。注意Data的定义!Max Occurs = unbounded。
SqlAdapter批量数据导入 

自定义映射到Insert请求消息
SqlAdapter批量数据导入 

创建流程
SqlAdapter批量数据导入 
配置发送、接收端口(略)


做一个测试用的数据
SqlAdapter批量数据导入 
将测试数据发到接收端口


这样,数据将插入到Account表中
SqlAdapter批量数据导入 


遗留问题:事务处理

可以在该流程中使用事务,添加作用域!
但当执行插入数据出错时,要对事务进行一下处理!

但目前对这方面还不是很有经验!但我的想法是在事务补偿中实现以下几个方法。
1.保存接收到的消息,为以后查询问题提供依据(如果是数据不对)
2.重试机制(如果是数据库访问的问题)


希望您也能参与一起讨论一下 :)

2007-01-04:通过阅读文档,明确一点,sync节点是1..*的,每一个sync下维持一个事务,而不是向我原来说的那样,整个是一个事务。就是说,一在一个sync内部,如果一次更新出错了,这个sync中的操作将全部取消,但不会影响其它sync的操作!


2007-05-12:时间好快,过了这么长时间。关于这种对数据库操作中出现的异常处理,可以使用BizTalk中的Scoap来实现,其实它就是一个Transaction,当有时在更新数据库后,又运行了一段时间,发现流程中出现异常,这时必须对原来操作过的数据进行处理,实现回滚。这里主要用到了Compensation,用它来进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值