Skip to content

想知道连接不安全关闭会造成什么影响吗?

Chris2018998 edited this page Jun 13, 2020 · 1 revision

小蜜蜂连接池在连接关闭方面有3个应用场景点

1:多线程并发调用Connection.close方法,只能让一个线程成功释放 假如有多个并发Thread同时调用该方法发生什么情况呢,连接池不做任何安全保障,是完全有可能将连接释放给多个等待者,大家可以想想这是多么可怕的事情。

2:借用者持有连接并长时间不使用,因此池强制回收 在连接池强制回收的那一刻,持有线程是有可能突然归还连接的,在这一刻点上讲:要么成功回收,要么借用者成功释放

3:连接池重置,清空所有连接,强制关闭所有连接 对于闲置的连接直接关闭,那么对于使用的中连接,策略A:强制性关闭,策略B:等待连接持有超时后再关闭;只要想关闭使用中的连接都可能遇到类似强制回收类似情况。

不清楚其他连接池在这个方面如何做到安全关闭的,比如光连接池,Tomcat-Jdbc,CP30等,麻烦熟悉这些连接池的同学帮忙回答这个问题: 它们是否存在这方面安全隐患?