我们已经包括了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.如果不是,可能导致我们遇到问题的原因是什么?
如果您需要更多信息,请随时评论。