用于维护交易的SSIS自定义控件UOW工作单元模式

问题描述

当前,我们正在研究SSIS,并在特定情况下进行工作,在该情况下,我们需要为自定义创建的控件实现工作单元设计。 UOW(工作单元)的目的是在根级别维护事务,并控制通过自定义控件完成的子事务。让我向您简要介绍一下:

我们已经创建了自定义SSIS控件来满足我们的要求。其中,自定义控件之一是针对Web API的。该控件的目的是调用现有的Web API并以JSON获取结果。我们希望通过SSIS包调用多个Web API,并在所有API调用序列之间共享事务。请注意,每个Web API都有在API级别处理的自己的事务。请注意,SSIS和API都将托管在不同的服务器上。

考虑以下示例以了解SSIS中的流程:

  1. 调用API-1(将执行相关操作。包含其自己的事务) ↓
  2. 调用API-2(将执行相关操作。包含其自身的事务) ↓
  3. 调用API-3(将执行相关操作。包含其自身的事务) ↓
  4. 调用API-4(将执行相关操作。包含其自身的事务)

如前所述,每个API调用都会实现自己的交易。意思是,这里的四个专用任务将具有四个事务。

我们想要的是,如果任何Web API调用失败,我们想回滚以前的API操作。这意味着,如果API-1和API-2成功执行,但API-3失败,则回滚API-1和API-2操作。我们尝试在顺序容器级别维护事务(保持启用MSDTC)。意思

  1. 序列容器(事务=必需,IsolationLevel =可序列化) 一种。 API-1调用 b。 API-2调用 C。 API-3调用 d。 API-4调用

由于我们使用的是自定义控件,因此无法回滚。如果我们使用sql Tasks而不是自定义Web API控件,那么它可以完美地完成工作。

有人可以就如何通过SSIS中的自定义控件维护分布式/共享事务提出任何想法/方向/想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)