首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSIS包动态连接中的异常处理

SSIS包动态连接中的异常处理
EN

Stack Overflow用户
提问于 2013-08-04 00:52:05
回答 3查看 2.8K关注 0票数 2

SSIS场景

我有一个对象类型的SQL变量。它包含到不同服务器/数据库的所有连接。我想一个接一个地连接到这些数据库,然后运行一个查询。

期望异常处理

如果SSIS连接管理器(动态连接管理器)无法找到到服务器的连接(可能服务器已关闭),我希望跳过该连接(数据库/服务器)并将其登录到表中,然后移动到下一个连接(Database/ server )。SSIS包不应崩溃。

我的实现

我已经成功地将SSIS包配置为使用Connection (动态连接管理器)和Foreach循环来循环类型对象的SSIS变量。但是,如果找不到服务器/数据库,则无法跳过连接。它会生成服务器/数据库未找到/连接问题和SSIS包失败的错误。

我在SSIS的经验已经有一周了。

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2013-08-07 12:23:43

将任务的->强制执行结果属性设置为成功如何?

票数 0
EN

Stack Overflow用户

发布于 2015-03-30 15:01:02

我也在找同样的解决办法。正常的OnError连接似乎不适用于连接到源DB时出现的问题。

还有另一个解决办法我想提一下。您可以处理数据流任务中的错误(OnError Eventhandler,将该Eventhandler中的System设置为false)。我认为这仍然是必需的,但不确定。我还使用它记录异常。

之后,您可以将MaximumErrorCount在ForEachLoop中设置为"0“(这意味着无限)。我不太清楚它为什么会起作用,但是为了找到一种处理您描述的场景的方法,我发现了这一点。

==

作为一个有趣的观察:为了调试目的,我向OnError添加了一个ForEachLoop收集器,并在虚拟脚本中设置了一个断点。一直没到。尽管如此,ForEachLoop一直失败,直到我将MaximumErrorCount设置为0。

票数 0
EN

Stack Overflow用户

发布于 2013-08-05 23:35:29

我认为,一旦遇到错误,就不可能继续执行包。您需要通过Server表(或任何其他表)来控制此行为。

一旦包失败,您可以在表中设置一个标志,表示包失败。下一次运行包时,您可以从这里开始并继续执行。但是自动跳下服务器有点像从帽子里拉出一只兔子。

另一种可以这样做的方法是在提交单独的包之前对每个服务器进行ping,并将ping结果存储在一个表中。只选择ping结果为阳性的记录(服务器)。否则就跳过服务器。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18038750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档