database - 不使用数据库连接池的原因?

标签 database connection-pooling

我最近发现了一个自动创建的指定“Pooling=False”的连接字符串,并且想知道为什么要这样设置它。根据我的理解,只要不是完全错误配置,池化实际上总是有利的。

是否有任何禁用池化的原因?它取决于操作系统、物理连接或使用的 DBMS 吗?

最佳答案

是的,禁用池是有原因的。您需要检查特定的池库如何处理临时网络断开连接。例如,如果连接丢失但连接对象仍处于事件状态,某些数据库驱动程序和/或池库将不执行任何操作。池不会重新生成新连接,而是会给你陈旧的连接,你会得到错误。一些池实现通过在为应用程序提供连接之前向服务器发出一些快速命令来检查连接是否有效。如果他们遇到错误,他们会终止该连接并产生一个新连接。在启用池之前,您始终需要针对这种情况测试您的池库。

关于database - 不使用数据库连接池的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194151/

相关文章:

java - BoneCP正确使用

mysql - MySQL 中按外键依赖性排序的表名列表

java - 在没有xml的情况下在spring boot中连接到mysql数据源

java - 如何从池中删除无效的数据库连接

MySQL 连接池与 JERSEY

spring - 如何在 Spring Boot 中为 Elasticsearch 设置连接池

php - 具有多个值的 Wordpress 搜索查询

PHP,计算自添加以来的时间

Java 1.6 和 Oracle JDBC 14 setQueryTimeout 不工作

tomcat - 如何在部署到 elasticbeanstalk 中的 tomcat 的 clojure ring web 应用程序中关闭 Hikari 连接池