IIS 上的 WebService 在操作oracle数据库时会不定时的出现,连接20多秒打开不了数据库然后报超时错误,有人知道这是什么原因么,我用的是PetaPoco 不可能出现泄露吧。
异常:Oracle.ManagedDataAccess.Client.OracleException (0x80004005): 连接请求超时 at OracleInternal.ConnectionPool.PoolManager3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, String affinityInstanceName, Boolean bForceMatch) at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, String affinityInstanceName, Boolean bForceMatch) at OracleInternal.ConnectionPool.OracleConnectionDispenser3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword) at Oracle.ManagedDataAccess.Client.OracleConnection.Open() at PetaPoco.Database.OpenSharedConnection()
网络问题或者是数据库服务器的问题
服务器都是在内网的,不应该吧
@GYY_顽石: 园子里找到一篇参考博文:程序连接oracle很慢的问题
@dudu: 感觉不太像啊,程序一直在运行着,出现异常后没有人为干预也会正常,只是不知道什么时候就会超时,我看你发的连接,如果是监听日志超过4G应该是后续都连接不上吧
@GYY_顽石: 参考 ODP.Net Managed Driver Connection Timeout
@dudu: 翻了半天,都是未解决的
https://community.oracle.com/thread/4129688 未解决
https://community.oracle.com/thread/4042090?start=0&tstart=0 未解决
https://community.oracle.com/thread/3941364?start=0&tstart=0 未解决
这问题好烦人啊。
@dudu: 刚查到一个说是连接池的连接已失效,我试试这个方法
Validate Connection
问题未解决,放弃了 :(
遇到了同样的问题,100个连接里有那么两三个报超时,搞不定了要,博主未解决后来怎么处理这些超时的?
搞不定呀 ):
@GYY_顽石:
写了个demo测了下,多线程同时并发,connection.open时间会超过15s。先解决问题,就是设置connection timeout=300时间长了也不报错。
或者就是先open一个,成功后再去多线程open好多个,同样连接字符串的话数据库有个连接池速度就上来了。
我也是遇到类似问题,不知道怎么搞。查好久了。
搞不定 ): 所以我辞职了