如何查询Hibernate连接池的实际大小
确认Hibernate连接池实际大小的方法
首先说明前提:如果你未引入任何第三方连接池组件,Hibernate默认使用内置的DriverManagerConnectionProviderImpl连接池,默认大小确实为1;如果是Spring Boot项目,默认会自动引入HikariCP作为连接池,不会使用Hibernate内置连接池,HikariCP的默认最大连接数为10。
你可以通过以下三种方式确认实际连接池大小:
- 方法1:运行时代码获取
可以注入SessionFactory或DataSource实例,通过反射或者自带API读取连接池配置,代码示例如下:
// 适用于未引入第三方连接池,使用Hibernate内置连接池的场景 import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import org.hibernate.internal.SessionFactoryImpl; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import javax.annotation.Resource; @Resource private LocalContainerEntityManagerFactoryBean entityManagerFactory; public int getBuiltInPoolSize() throws Exception { SessionFactoryImpl sessionFactory = entityManagerFactory.getNativeEntityManagerFactory().unwrap(SessionFactoryImpl.class); ConnectionProvider provider = sessionFactory.getConnectionProvider(); if (provider.getClass().getCanonicalName().equals("org.hibernate.connection.DriverManagerConnectionProviderImpl")) { return (int) provider.getClass().getMethod("getPoolSize").invoke(provider); } return -1; } // 适用于使用HikariCP连接池的场景(Spring Boot默认场景) import com.zaxxer.hikari.HikariDataSource; import javax.sql.DataSource; @Resource private DataSource dataSource; public int getHikariPoolSize() { if (dataSource instanceof HikariDataSource) { return ((HikariDataSource) dataSource).getMaximumPoolSize(); } return -1; }
- 方法2:数据库端直接统计
登录Postgres数据库执行以下SQL,统计当前应用的活跃连接数,压测过程中如果连接数始终稳定在某个固定值,该值就是连接池的最大大小:
SELECT count(*) FROM pg_stat_activity WHERE usename = '替换为你的数据库用户名' AND client_addr = '替换为你应用部署的服务器IP';
- 方法3:查看应用启动日志
Hibernate或连接池组件初始化时会打印连接池配置,你可以在启动日志中搜索pool size、maximumPoolSize等关键词,直接读取配置值。
临时调整连接池大小的方案
如果你暂时不打算引入第三方连接池,可以通过以下配置覆盖Hibernate内置连接池的默认大小:
注意:Hibernate官方明确提示内置连接池仅用于开发测试,不具备生产环境需要的性能、容错、监控等能力,生产环境建议优先使用HikariCP等成熟的第三方连接池组件
在你的application.properties配置文件中添加如下配置即可调整大小:
spring.jpa.properties.hibernate.connection.pool_size=10
如果使用yml配置,格式如下:
spring: jpa: properties: hibernate: connection: pool_size: 10
内容的提问来源于stack exchange,提问作者Jessi
相关产品推荐
相关产品推荐

