当Npgsql连接池达到最大值时会发生什么?

7
连接字符串参数的名称和这篇博客文章 - http://fxjr.blogspot.co.uk/2010/04/npgsql-connection-pool-explained.html - 让我相信Npgsql不会超过在连接字符串中设置的MaxPoolSize值。然而,文档(http://npgsql.projects.postgresql.org/docs/manual/UserManual.html)说:“连接池的最大大小。如果连接池包含超过此连接数,则返回到池中的池化连接将被处理。默认值:20”。
这表明,池实际上可以增长超过MaxPoolSize,并且实际上只是一个级别,Npgsql在连接返回时立即开始积极地从池中删除连接。
我一直在搜索以找到答案,但我无法确定当达到MaxPoolSize时会发生什么。还有其他人知道吗?
编辑:我应该补充说明,我们正在使用Npgsql 2.0.6.0,因为另一个依赖项仅支持该版本。

为什么不直接查看源代码呢?应该很容易找到“MaxPoolSize”。 - xanadont
1个回答

6

我认为这可能是关于minpoolsize的复制粘贴问题。Npgsql不会创建超过maxpoolsize连接数的连接。当此值达到时,新的连接请求将被排队等待,直到有空闲连接为止。

您所使用的哪个问题仅适用于2.0.6版本?


谢谢你的快速回答,Francisco。没有特定的功能依赖于2.06版本,但我们有一个商业数据访问层,我们目前无法升级它,该访问层是针对2.0.6构建的。我可能会尝试在其中使用最新版本的npgsql运行我们的测试。如何处理连接池对于我们正在进行的更改非常重要,这将把许多单独的站点统一到一个站点中。将许多小型应用程序池合并成一个更大的池。 - ClearCarbon
好的,你应该升级到2.0.11.93版本,因为我们在连接池方面进行了一些改进,根据用户测试,性能提高了30%。如果可以,请告诉我它是否正常工作。 - Francisco Junior

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