栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

连接池问题

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

连接池问题

这是事件流,以说明正在发生的事情:

  1. 调用方(应用程序或连接池)请求并使用连接
  2. 调用方保留对其的引用,以便可以重新使用该连接
  3. 呼叫者会经历一段闲置时间(例如,一整夜的dev系统或一周末的QA系统)。
  4. 一旦不使用该数据库连接,数据库就会认为该连接处于空闲状态。由于它是空闲的,因此在一定时间(MySQL默认值为8小时)后,数据库将关闭连接。
  5. 调用方仍然具有该连接的句柄,并且当调用方再次尝试使用该连接时,它不愉快地发现该连接已关闭。

autoReconnect =
true起作用的原因以及测试连接有效性的池起作用的原因是,您正在指示调用系统针对这种情况测试连接,并在这种情况发生时再次尝试。

至于验证查询是否会影响性能:从理论上讲,它是使用连接来做某事。在实践中,某些事情是如此琐碎,以至于在整个系统的环境中其影响可以忽略不计。

[编辑]

在这种情况下,Apache
DBCP是挂在连接上的连接池,但是您不希望DBCP在每次调用后关闭连接。连接池的重点是使连接为下一次调用做好准备,因为创建连接非常昂贵。池维护的连接对象由实际的数据库连接支持,而数据库是在空闲超时时间后关闭该实际连接的数据库。请注意,关闭空闲连接的超时是在数据库上配置的,而不是在连接池上配置的。因此,除非DBCP实际上尝试与其连接,否则DBCP无法知道该连接是否已关闭。这就是为什么您需要验证查询的原因。

有关配置DBCP的更多信息,请参见配置页面和API文档。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426603.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号