使用C#超时过期消息的SSIS 2008脚本任务

时间:2011-10-31 20:58:51

标签: c# .net-3.5 ssis

我正在从遗留系统到新系统的迁移项目。我们当前的流程是一系列以特定顺序运行的SSIS包。其中一个软件包是调用预先编写的C#代码,该代码已打包并添加到GAC中。然后通过SSIS中的脚本任务调用此代码。 SSIS包只有一个脚本任务和一些变量。变量被加载到包中并发送到驻留在GAC中的其他C#代码。 GAC代码管理与三个数据库和API的连接。在常规控制台应用程序中使用SSIS脚本任务代码我没有收到错误。在SSIS包中,我得到“Timeout expired。在从池中获取连接之前已经过了超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。”。此错误不在特定的代码行上。它的任务本身就会返回此错误。

我的问题:SSIS是否有一些超时期限用于限制单个脚本任务的运行时间?如果是这样,它是可配置的吗?

我知道这是一个非常模糊的问题。如果需要,我可以提供代码示例。但是,如果在具有相同代码的Console应用程序中工作,我发现很难相信它是我在GAC中引用的DLL。

<小时/> 更新11/1/2011 9:30 AM东部

@billinkc,我的GAC中只有1个版本。我在调试模式下运行SSIS包(F5)。我可以告诉我正在建立连接,因为我可以看到数据被写入目标表。我会进一步调查

@Filip Popovic,堆栈跟踪来自GAC代码,让我感到惊讶的是,它通过控制台应用程序调用时不会导致任何错误,而是通过SSIS脚本任务执行。我也没有在SSIS中看到任何有关Pool Size的内容。

一位同事有一些想法,我打算今天尝试一下。

<小时/> 更新11/1/2011 1:07 PM东部

奇怪的是,我今天更多地研究了这个。我注意到GAC程序集中的连接没有被重用或关闭。重写这使它在SSIS中起作用。但问题仍然存在。为什么在SSIS中出现此错误而不是控制台应用程序?可能有什么不同?

0 个答案:

没有答案