【问题标题】:BizTalk polling from SQL - Commit/Rollback transaction来自 SQL 的 BizTalk 轮询 - 提交/回滚事务
【发布时间】:2012-08-15 13:01:08
【问题描述】:

我有一个接收位置,它正在使用 WCF-SQL 适配器对存储过程进行轮询。

接收位置正在使用自定义管道。

该存储过程正在对某些行执行“更新”操作。

我需要 BizTalk 对事务执行 ROLLBACK,以防管道在稍后阶段失败。

我应该怎么做?

【问题讨论】:

    标签: sql biztalk


    【解决方案1】:

    默认情况下,WCF-SQL 适配器将在 distributed DTC transaction 下调用您的存储过程

    此设置 (UseAmbientTransaction) 位于接收位置属性、绑定选项卡、事务中。

    (未经测试!)这应该意味着如果proc或管道失败,连接将自动回滚。

    当在编排中的原子范围的范围内使用时,这同样应该在适配器上强制执行 2 阶段提交/ACID。

    【讨论】:

    • 感谢您的回答。我尝试设置“UseAmbientTransaction”=True,但是当管道失败时,BizTalk 引擎没有回滚事务(我的意思是,行已更新)。
    • @user1003363 看来我只在 WCF-SQL 上使用标准 XmlReceive。蒂亚戈在这里有更多关于此的内容:connectedthoughts.wordpress.com/2010/03/24/…。我猜是因为每次轮询都会拉取 BTS 提交的批次,因为 a)PROC 成功,b)批次成功提交到消息框。
    • 所以没有办法使用自定义管道进行回滚?
    猜你喜欢
    • 1970-01-01
    • 2016-03-07
    • 2013-11-20
    • 1970-01-01
    • 2012-09-05
    • 2018-01-02
    • 2014-05-18
    • 2014-11-25
    • 1970-01-01
    相关资源
    最近更新 更多