c# - 在同一台计算机上运行的多个控制台应用程序实例具有相同的连接字符串达到最大池大小 - Oracle
问题描述
当我在同一台机器上运行应用程序的 2 个实例时,我收到此错误:
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): Pooled connection request timed out
at OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch)
at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch)
at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, OracleConnection connRefForCriteria)
at Oracle.ManagedDataAccess.Client.OracleConnection.Open()
从我一直在阅读的内容来看,连接池是每个进程的,因此即使两个实例具有相同的连接字符串,它们也不应该共享连接池。
我一直在查看 V$SESSION,我可以看到最大连接数,但它们处于非活动状态并正在等待。当 Connection.Open() 被调用时,我希望使用其中之一,但似乎并非如此。
解决方案
推荐阅读
- c# - 如何使用 ConnectedComponents 删除二进制图像中的连接对象
- javascript - Vanilla Javascript:如何使用用户颜色输入在网格上制作多种不同颜色的单元格
- vb.net - 自动增量 Excel OleDb 连接 Vb.net
- python - 如何使用numpy替换数组中的字符?
- android - 没有为片段找到 id 0x7f0800c4 的视图
- python - 如何修复 Pycharm 中的 Python 3 Json 文件错误?
- dns - 咖啡馆 wifi DNS 劫持和 kops 验证集群
- sql - SQL删除多个表中的多行数据
- c++ - C++ 代码在不同操作系统上的编译方式不同
- azure - Asp.net 应用程序部署在托管在 DMZ NIC 上的 IIS 服务器上,无法从服务结构应用程序获得响应