SSIS场景
我有一个对象类型的SQL变量。它包含到不同服务器/数据库的所有连接。我想一个接一个地连接到这些数据库,然后运行一个查询。
期望异常处理
如果SSIS连接管理器(动态连接管理器)无法找到到服务器的连接(可能服务器已关闭),我希望跳过该连接(数据库/服务器)并将其登录到表中,然后移动到下一个连接(Database/ server )。SSIS包不应崩溃。
我的实现
我已经成功地将SSIS包配置为使用Connection (动态连接管理器)和Foreach循环来循环类型对象的SSIS变量。但是,如果找不到服务器/数据库,则无法跳过连接。它会生成服务器/数据库未找到/连接问题和SSIS包失败的错误。
我在SSIS的经验已经有一周了。
任何帮助都将不胜感激。
发布于 2013-08-07 12:23:43
将任务的->强制执行结果属性设置为成功如何?
发布于 2015-03-30 15:01:02
我也在找同样的解决办法。正常的OnError连接似乎不适用于连接到源DB时出现的问题。
还有另一个解决办法我想提一下。您可以处理数据流任务中的错误(OnError Eventhandler,将该Eventhandler中的System设置为false)。我认为这仍然是必需的,但不确定。我还使用它记录异常。
之后,您可以将MaximumErrorCount在ForEachLoop中设置为"0“(这意味着无限)。我不太清楚它为什么会起作用,但是为了找到一种处理您描述的场景的方法,我发现了这一点。
==
作为一个有趣的观察:为了调试目的,我向OnError添加了一个ForEachLoop收集器,并在虚拟脚本中设置了一个断点。一直没到。尽管如此,ForEachLoop一直失败,直到我将MaximumErrorCount设置为0。
发布于 2013-08-05 23:35:29
我认为,一旦遇到错误,就不可能继续执行包。您需要通过Server表(或任何其他表)来控制此行为。
一旦包失败,您可以在表中设置一个标志,表示包失败。下一次运行包时,您可以从这里开始并继续执行。但是自动跳下服务器有点像从帽子里拉出一只兔子。
另一种可以这样做的方法是在提交单独的包之前对每个服务器进行ping,并将ping结果存储在一个表中。只选择ping结果为阳性的记录(服务器)。否则就跳过服务器。
https://stackoverflow.com/questions/18038750
复制相似问题