oracle 为什么我的 SSIS 包中的连接不断丢失?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6351216/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 23:58:19  来源:igfitidea点击:

Why do I keep losing connections in my SSIS package?

sql-serveroraclessisdatabase-connection

提问by Blanthor

I have a very simple SSIS package where I take data from a view in Oracle, minimally transform it with a script component, and load that into a table in SQL Server 2008.

我有一个非常简单的 SSIS 包,我从 Oracle 中的视图中获取数据,使用脚本组件对其进行最低限度的转换,然后将其加载到 SQL Server 2008 中的表中。

Both my DB Source and my DB Destination components have connected successfully with their respective databases earlier today.

今天早些时候,我的 DB Source 和 DB Destination 组件已成功连接到各自的数据库。

Now I get the following error, while debugging in BIDS (VS 2008).

现在,在 BIDS (VS 2008) 中调试时出现以下错误。

Data Flow Task: ADO NET Destination has failed to acquire the connection {046C4CA9-2BBF-46FD-9FEA-06F1B173BB35}. The connection may have been corrupted.

数据流任务:ADO NET 目标未能获得连接 {046C4CA9-2BBF-46FD-9FEA-06F1B173BB35}。连接可能已损坏。

I fixed a similar one with my Oracle connection by deleting the connection component and creating a new one. The ADO.NET connection appears to be more stubborn. I have made the User Name and Password part of my configuration for deployment. Is BIDS typically this unstable an environment to work in? I need reliable connnections so that I can fix the other bugs I've created. Thanks in advance for any help.

我通过删除连接组件并创建一个新的连接来修复与我的 Oracle 连接类似的问题。ADO.NET 连接似乎更顽固。我已将用户名和密码作为部署配置的一部分。BIDS 的工作环境通常如此不稳定吗?我需要可靠的连接,以便我可以修复我创建的其他错误。在此先感谢您的帮助。

采纳答案by Jon Erickson

Try using OLE DB for all connections unless you have a specific need for ADO.NET... not sure why, but it always seemed more reliable for me...

尝试将 OLE DB 用于所有连接,除非您对 ADO.NET 有特定需求……不知道为什么,但对我来说似乎总是更可靠……

回答by A-K

You might be better off if you just write your own load in C# or C++ - you might spend slightly more time writing code, but you will spent much less time chasing elusive bugs and googling for workarounds.

如果您只用 C# 或 C++ 编写自己的负载,情况可能会更好——您可能会花更多的时间编写代码,但花在寻找难以捉摸的错误和谷歌搜索解决方法上的时间会少得多。

Edit: to those who downvoted, would you mind explaining your reasons?

编辑:对于那些投反对票的人,你介意解释一下你的理由吗?

回答by Elias Fernando Navarro Gallego

In your DataFlow Task in control flow view set in properties tab the value for delay Validation to true.

在控制流视图中的 DataFlow 任务中,在属性选项卡中将延迟验证的值设置为 true。

回答by user3882845

set delay validation = true in the properties window worked for me

在属性窗口中设置延迟验证 = true 对我有用