在使用PetaPoco微型Orm的C#项目中,我们遇到了问题。我们的Oracle数据库在另一台计算机上,如果为了维护或故障而关闭该计算机,则会在C#PetaPoco中收到此错误:
Exception="Connection request timed out
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,
OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object
src, String procedure, Boolean bCheck, Int32 isRecoverable,
OracleLogicalTransaction m_OracleLogicalTransaction)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,
OracleConnection conn, IntPtr opsErrCtx, Object src, OracleLogicalTransaction
m_oracleLogicalTransaction)
at Oracle.DataAccess.Client.OracleConnection.Open()
可以,但是当数据库恢复时,尝试打开数据库时我们仍然遇到相同的错误: Exception =“连接请求超时 ...
我试图将“最大池大小”设置为一个较小的数字(例如3),并尝试打开多个连接而不关闭它们以复制问题。不幸的是,我从该实验中得到了另一个错误:池连接请求超时
当数据库PC夜间关闭时,会发生这种情况。使用SQLDeveloper测试到数据库的连接是否有效。
有什么建议吗? 谢谢
答案 0 :(得分:0)
几周前,我在开发工作站上收到池化的连接请求超时。
通过将连接描述直接放入连接字符串而不是使用TNS,我能够清除这一点。
代替
...Data Source = MyTNSDescription...
我将其放在Web.config连接字符串中
... Data Source = (DESCRIPTION =(ADDRESS = <rest of connection description>...
突然,问题消失了。如果问题与您的Oracle Client / TNS的特定配置有关,则可能会使您快速工作。无论如何,这是一件快速的事情。