SSIS:升级到SQL Server 2012后工作包失败

问题描述:

我有一个SSIS包在SQL2008R2上运行良好,环境变量指向连接字符串的配置文件。使用VS2010 Shell,我升级了我们的SQL Server 2012数据库的包。该软件包仍处于软件包部署模式。该软件包的ProtectionLevel设置为DontSaveSensitiveRun64BitRuntime = False。当我尝试和执行VS包,我收到以下错误:SSIS:升级到SQL Server 2012后工作包失败

[OLE DB Destination [2]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "DB_Connection" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.**

[SSIS.Pipeline] Error: OLE DB Destination failed the pre-execute phase and returned error code 0xC020801C.**

有了完整的日志记录,我看到的第一个失败的位置:

Diagnostic,[ComputerName],OFFICE\username,DB_Connection,{5AD75239-D546-4AAF-963E-E195FC2F0C1E},{9EC48106-DDBD-40E9-8FBB-942BCF025EEE},3/26/2013 10:35:21 AM,3/26/2013 10:35:21 AM,0,(null),ExternalRequest_post: 'ITransactionJoin::JoinTransaction failed'. The external request has completed.**

是真的抛出我的一部分是在包的较早版本中,在许多执行SQL任务中成功使用了相同的“DB_Connection”管理器。所以,似乎正确地从配置中读取连接字符串。

我试过删除\重新创建连接管理器。我已验证DTC在本地和服务器上都已正确配置。我有其他软件包使用相同的配置方法使用数据流任务无问题地连接到相同的SQL2012数据库。

任何人都可以帮助指出我在正确的方向,将不胜感激。如果我不需要,我宁愿不必在此时转移到项目部署模型。

我能够让我的软件包在本地运行。虽然我在我的任务上检查了TransactionOption以确保它们被设置为支持,但事实证明,我的一个序列容器被设置为必需。不知道为什么这在SQL2008R2中起作用,但不在SQL2012中起作用。我将我的容器更改为支持并且现在运行该包。

+0

谢谢!事实上,你必须分别看待这些任务 – laurens 2013-07-16 11:18:46