我有一个SSIS包,可以将数据从Oracle导入SQL。此外,还有一个SQL作业每5分钟执行一次此包。问题是,当SSIS无法建立到Oracle的连接时,没有超时错误会导致整个包失败。因此,作业保持在执行状态,SSIS甚至在几天后仍在尝试建立连接。关键是Oracle不会让SSIS在一次连接尝试失败后连接,无论连接问题是否解决。
如何防止此问题?当连接不成功时,是否有任何方法使作业失败,以便在数据丢失5分钟后,作业将再次执行,并建立新的连接?
提醒大家一下,我在SSIS中设置OracleClient连接类型。SQLClient连接类型已经有了一个用于设置连接超时的选项。
1条答案
按热度按时间cidc1ykv1#
尝试在脚本任务中 Package Oracle连接:不要在数据流中直接使用Oracle连接管理器,而是使用脚本任务以编程方式建立连接。这样,您就可以更好地控制连接过程。
在脚本任务中,可以使用Oracle Data Provider for .NET(ODP.NET)中的
OracleConnection
类设置连接超时机制。OracleConnection
类有一个ConnectionTimeout
属性,可用于设置建立连接的超时值。在执行SSIS包的SQLServer作业中,可以将其配置为适当地处理故障。将作业设置为在一定次数的失败后重试包执行,或在特定次数的重试后使作业失败。如果SSIS包无法连接到Oracle,则将在定义的时间段后重试作业。