这更具体地说是与SQL Server Reporting Services相关,但我也将其视为典型的.Net应用程序问题。Oracle与.Net的连接 - 连接池
这是问题所在。我们正在使用SSRS报告来自Oracle数据库的数据。从第1天起,我们的用户抱怨他们得到如ORA-2396的错误:超出最大空闲时间,ORA-01012-未登录等。
我们已经包括DBA,应用程序开发人员,网络工程师,但到目前为止,我们可以没有找到更好的线索。最近在进行一些研究时,我发现很多人都记录了一个与.Net连接到oracle的“已知”问题。就像他们提到的那样,如果我们使用连接池,那么即使没有用的连接也可能在池中可用。在下一次请求时,可能会使用此连接,并在此时抛出错误。正如我们的DBA所证实的,我们的oracle实例被设置为在连接X分钟空闲时终止连接。
下面是它具有上述提到 http://msdn.microsoft.com/en-us/library/8xx3tyca(v=VS.90).aspx
http://www.codeproject.com/KB/dotnet/ADONET_ConnectionPooling.aspx
有几个得更为出色的链接。然而,我没有得到任何确认的声明,说是的,这是目前的问题(最新版本的.Net和oracle等)。
在解决方案部分,他们提到我们将使用“Validate Connection = true”属性作为连接字符串的一部分。但如果我尝试使用它,它会显示“不支持关键字 - 验证连接”。 (我也尝试过Validcon)
问题我有这些 1.是否确认从连接池问题中读取“脏”存在? 2.如果有,解决方案是什么? 3.如果不是,可能是导致我们结束的问题。
如果您需要更多信息,请随时发表评论。
有效的SQL Server连接字符串在这里:http://msdn.microsoft.com/en-我们/库/ system.data.sqlclient.sqlconnection.connectionstring.aspx。您可能想尝试关闭连接池:将最大池大小设置为1来执行此操作。 –
根据组织政策,禁止有关限制池大小或关闭池的选项。 –