BizTalk事务-原子/长时间运行

BizTalk事务-原子/长时间运行,biztalk,atomic,transactionscope,biztalk-2010,Biztalk,Atomic,Transactionscope,Biztalk 2010,我需要一些关于BizTalk原子和长时间运行事务的实际使用的信息。我已经阅读了所有的理论,但不确定如果我进行了多个SQL调用,原子事务将如何工作,如果某个SQL调用失败,那么之前提交的事务/数据将如何回滚 需要一些指南/链接/指针来更好地理解事务 使用的BizTalk版本:2010主要区别在于,即使在向消息框发送数据时,在原子事务期间,编排也不会持久化-所有内容都将在由DTC建立的一个事务中进行。实际上,若您从原子事务发送消息,那个么该消息实际上并没有发送到MB——它是已写入的,但并没有提交。

我需要一些关于BizTalk原子和长时间运行事务的实际使用的信息。我已经阅读了所有的理论,但不确定如果我进行了多个SQL调用,原子事务将如何工作,如果某个SQL调用失败,那么之前提交的事务/数据将如何回滚

需要一些指南/链接/指针来更好地理解事务


使用的BizTalk版本:2010

主要区别在于,即使在向消息框发送数据时,在原子事务期间,编排也不会持久化-所有内容都将在由DTC建立的一个事务中进行。实际上,若您从原子事务发送消息,那个么该消息实际上并没有发送到MB——它是已写入的,但并没有提交。 另一个区别是原子事务在发生故障时自动回滚内部的所有内容。因此,您可以确保内部的所有操作都是一次性完成的,或者根本不执行

实际上,原子事务在BizTalk中有太多的限制和非常奇特的处理方式。我已经用BizTalk实现了很多解决方案,但到目前为止从未使用过原子事务。但是我使用了大量的长时间运行来强制编排保持某种中间状态(发生在任何事务作用域的末尾)或定义补偿操作。

参见本博客

特别是:

请注意,BizTalk关于原子事务的范围仅限于BizTalk Server消息框。在你决定使用原子范围之前,请考虑这个问题。

因此,关于多个SQL事务,我不认为可以用原子形状这样做,除非您不依赖于第一个SQL调用的结果。如果希望回滚单个SQL事务,最好在BizTalk调用的存储过程中回滚

大约我唯一一次使用原子作用域是在必须从编排内部调用管道或调用BRE时