我有一个 SSIS 包,它在 SQL2008R2 上运行良好,使用环境变量指向连接字符串的配置文件。使用 VS2010 Shell,我升级了 SQL Server 2012 数据库的包。包仍处于包部署模型中。包的保护级别设置为 DontSaveSensitive
. Run64BitRuntime = False
.当我尝试在 VS 中执行包时,出现以下错误:
[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 数据库,没有问题。
任何人都可以为我指明正确方向的任何帮助将不胜感激。如果我不需要,我宁愿此时不必转向项目部署模型。
最佳答案
我能够让我的包在本地运行。虽然我已经检查了 交易选项 在我的任务上确保它们被设置为 支持 ,原来我的一个序列容器被设置为 必填 .不知道为什么这在 SQL2008R2 中有效,但在 SQL2012 中无效。我将容器更改为 支持 并且该包现在运行。
关于sql - SSIS:升级到 SQL Server 2012 后工作包失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647019/