在.Net中的Oracle连接池技术

18

我们的系统使用了 Oracle 数据库。有人询问我这个系统是否使用了连接池,但我不确定。

我们正在使用 Oracle.DataAccess.Client.OracleConnection

在阅读相关资料时,我发现连接字符串中的连接池设置为 true 并且默认情况下也是 true。

我们的连接字符串没有包含任何连接池设置。这是否意味着我们正在使用连接池?如果是这样,那么默认的最小和最大池大小将是多少呢?我没有找到有关在隐式使用连接池(即未在连接字符串中指定)情况下这些值是什么的信息。


2
这实际上是一个DBA问题,但是要使用连接池,需要启用它并设置您的连接字符串和/或TNS条目;请参见配置数据库驻留连接池。有关背景信息,请参见关于数据库驻留连接池,应该会为您提供一些很好的信息。祝你好运。 - Bob Jarvis - Слава Україні
1个回答

23

默认情况下,连接池是开启的,如官方ODP.NET连接字符串属性文档所述(默认值:Pooling = true)。

因此,如果您的连接字符串省略了任何类型的连接池设置,您将会得到一个带有以下基本默认设置的连接池,这些设置同样基于官方ODP.NET连接字符串属性文档页面:

  • Connection Timeout = 15: 从池中等待空闲连接的最长时间(以秒为单位)。
  • Decr Pool Size = 1: 当未使用的已建立连接数量过多时,关闭的连接数。
  • Incr Pool Size = 5: 当池中所有连接都在使用时,要创建的新连接数。
  • Max Pool Size = 100: 连接池中的最大连接数。
  • Min Pool Size = 1: 连接池中的最小连接数。

文档还提到了其他有趣的默认池值,您也可以阅读了解。


谢谢。这真的很有帮助。我会仔细阅读您链接的文档。 - Steve
连接池是基于应用程序域还是整个操作系统共享的? - Robin Sun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接