【问题标题】:getting request timeout exceptions from a asp.net application using the Oracle client with multiple schemas使用具有多个模式的 Oracle 客户端从 asp.net 应用程序获取请求超时异常
【发布时间】:2011-01-08 05:20:45
【问题描述】:
我们有一个使用 Oracle 客户端的 asp.net 应用程序。在连接字符串中,我们指定了 3 个基本属性:数据源、用户 ID 和密码。我们正在使用连接池。我们的数据位于 2 个不同的 Oracle 模式中。大多数请求都是针对来自 Schema1 的数据。超时来自对来自 schema2 的数据的调用
连接是否可能隐式绑定到架构?
这可以解释很多。由于大多数调用都是针对来自 schema1 的数据,因此池中充满了仅对 schema1 有用的连接。然后调用来自 schema2 的数据,并且池中没有一个连接可以满足请求,我们得到超时。
感谢您的帮助,
- 格雷格
【问题讨论】:
标签:
asp.net
oracle
schema
connection-pooling
【解决方案1】:
Oracle 连接始终与模式绑定,默认是用户自己的模式。如果你使用两个不同的连接字符串,你应该已经有两个独立的池,所以我怀疑你可能已经达到了数据库的最大会话数。
您的“SESSIONS”实例参数是什么。将其与连接中的“最大池大小”设置进行比较。默认我认为是 11g 的 100,但你没有提到哪个版本。您可能需要提高 PROCESSES 或降低 Max Pool Size。
您应该在看到这些超时时查询 V$SESSION 以查看实际的 Oracle 会话数。
select username, count(1) from v$session group by username;