spring - 检索连接时显示关闭连接错误
问题描述
当我创建一个准备好的语句时,我间歇性地看到关闭连接错误任何线索这里有什么问题?
下面是我如何获得连接和preparestatement
ConnectionManager.getConnection();
con.preparestatement(" select * from my_table ");
以下是 HikariCP 的配置:
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="poolName" value="my-pool" />
<property name="registerMbeans" value="true" />
<property name="driverClassName" value="${my.dbDriverClassName}" />
<property name="jdbcUrl" value="${my.dbConnectionUrl}" />
<property name="username" value="${my.dbUserName}" />
<property name="password" value="${my.dbPassword}" />
<property name="connectionTestQuery" value="SELECT 1 FROM DUAL" />
<property name="maximumPoolSize" value="100" />
<property name="minimumIdle" value="10" />
<property name="leakDetectionThreshold" value="120000" />
<property name="maxLifetime" value="600000" />
<property name="idleTimeout" value="60000" />
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-
method="close">
<constructor-arg ref="hikariConfig" />
</bean>
<bean
class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"
c:dataSource-ref="dataSource" />
<bean id="jdbcTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource"/>
<tx:annotation-driven transaction-manager="jdbcTransactionManager"/>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
ConnectionManager 的 pastebin https://pastebin.com/aqNKtwaH
解决方案
请注意,当池中没有可用连接时,Hikari 的泄漏警告堆栈跟踪会在泄漏发生后打印,因此您的代码可能会从不同的方法泄漏
你的代码有问题:
}finally{ rs.close(); pst.close(); con.close(); }
if rs
or pst
is nullconn
不会被关闭,你会有泄漏
在调用方法之前添加空检查close()
或对资源使用 try
推荐阅读
- python - 如何从列表中的多个 URL 中抓取和提取相同的特定信息
- javascript - Jquery不允许访问同一类中的构造函数或函数
- reactjs - react i18n - 函数作为 React 子级无效
- flutter - 运行颤振 2.2.3 时缺少 FacebookAuth
- python-3.x - 有没有办法在 Google colab 中观察创建的变量?
- c++ - `vaddhn_high_s16` 实际上做了什么?
- python - 在列表中使用索引时遇到问题
- javascript - 将具有重复值的对象组合在数组中
- android - 不能在 CardView 中设置 RecyclerView?
- sql - 如何在具有完全非结构化字符串列的任何表的任何列上的任何匹配字符上加入多个表?