0

A 在一个序列容器中具有四个数据流任务,同时连接到同一个 Oracle 数据库。那就是没有绿色的小线连接四个数据流任务来强制它们按顺序执行。

在执行四个数据流任务时,与 Oracle 的 obdc 连接很少发生。

一个或多个数据流无法完成。请注意,通常的 OnError 处理程序从未被击中。

我可以处理这种情况并优雅地失败。

但是我该如何测试呢?

该软件包在服务器上安装和执行。我希望能够在程序包运行并从 Oracle 数据库中提取数据时强制终止 odbc 连接。

我无法像在 Sql Server Management Studio 中那样以类似的方式访问 Oracle 来终止适当的进程。

我能想到的最接近的做法是调整在 Sql Server 数据库中设置为包配置的连接字符串,使其无法连接到随机的虚拟服务器名称。不完全一样,但至少数据流会失败。它不会因为我正在寻找的确切原因而失败。

4

1 回答 1

0

我不会尝试强行杀死事物,而是使用 SSiS 事务,因此如果失败,一切都会回滚。为此,请执行以下操作:

  1. 确保 MSDTC 正在运行
  2. 设置 TransactionOption = 在包级别支持
  3. 在序列容器级别设置 TransactionOption = 必需
  4. 设置 TransactionOption = 支持数据流任务

现在,它们应该全部成功或全部回滚。

于 2012-11-07T07:55:20.650 回答