对于数据加载,我在MSSQL 2012上使用SSIS包(VS2010)。它将数据从Sybase ASE(ODBC)加载到MSSQL 2012(OLEDB)。一切正常,它使用少量的Sybase连接。
然后我在MSSQL 2014上将我的软件包迁移到SSIS(VS2013),现在我的情况很奇怪。
当我在VS2013中打开我的软件包时,它会从devenv.exe为每个数据流步骤创建一个与Sybase的连接。接下来,我运行我的包,它为DtsDebugHost.exe中的每个数据流步骤创建了一个连接,并且在运行期间,它从DtsDebugHost.exe创建了更多连接,并且几乎所有连接都处于“AWAITING COMMAND”状态。我有与Sybase的250个连接的许可证限制,我的包破坏了这个限制。
为什么2014年SSIS会发生这种奇怪的行为?我该如何处理?
答案 0 :(得分:1)
为什么版本之间存在差异,我没有答案。
如果我冒昧猜测,SSIS正在尝试快速验证整个软件包,并打开多个连接并为每个连接分配验证工作。因此,并行验证与串行验证。
但解决方法是将ASE连接管理器上的RetainSameConnection
属性设置为True。这将使SSIS不会打开多个连接,而是强制一切使用一个连接。