Transactions 自定义SSIS组件执行方法中的事务对象

Transactions 自定义SSIS组件执行方法中的事务对象,transactions,ssis,task,Transactions,Ssis,Task,我在谷歌上搜索,我狂饮,我到处都是 我正在寻找一个示例,说明如何使用传递到自定义任务的Execute方法中的object类型的事务变量 我注意到,当我有一个事务对象时,它的类型是System.\u ComObject 我需要特别做的是将事务传递给webservice。Web服务在打开连接时以某种方式注册此事务,请运行sql。更重要的是,如果包进一步失败,则在webservice回滚中使用sql。现在DTC已启用,如果自定义任务失败,程序包将回滚,但如果一个自定义任务成功,而另一个任务失败,则自定

我在谷歌上搜索,我狂饮,我到处都是

我正在寻找一个示例,说明如何使用传递到自定义任务的Execute方法中的object类型的事务变量

我注意到,当我有一个事务对象时,它的类型是System.\u ComObject

我需要特别做的是将事务传递给webservice。Web服务在打开连接时以某种方式注册此事务,请运行sql。更重要的是,如果包进一步失败,则在webservice回滚中使用sql。现在DTC已启用,如果自定义任务失败,程序包将回滚,但如果一个自定义任务成功,而另一个任务失败,则自定义任务工作仍将提交

现在,如果这不能在Execute方法之外使用,我想我可以将webservice代码引入Execute方法

为了提供一些历史记录,我必须创建自定义webservice任务,因为内置任务不支持身份验证


内置SSIS连接管理器在其“重新连接”调用中支持此事务对象(有关更多详细信息,请参阅)

然而,几乎可以肯定的是,它只是指向某种非托管事务对象的指针,SSIS似乎没有为它提供托管包装(即通过DtsConvert)

但我会后退一步,问问自己,当你得到它的时候,你认为你会做什么。在事务中注册Web服务是非常重要的。理论上,支持ws-transactions的Web服务可以注册(WCF为此提供了支持:,但您正在调用的Web服务是否提供了支持?),但在实践中,我认为我会一直尝试避免这种情况,而是注册一些其他本地事务资源,以可靠的方式传递您的消息。就像数据库中的“发件箱”表。或MSMQ

这将是一个更可靠的解决方案,在您的情况下,更容易注册交易