如何获取Spring启动应用程序生成的活动数据库连接数

时间:2017-11-28 18:32:49

标签: spring oracle spring-boot

我使用Oracle数据源构建了一个spring boot应用程序。我需要在日志语句中打印总活动连接。如何获得活动连接。注意 - 不是最大活动连接,它应该是活动连接@particular time / instance。

3 个答案:

答案 0 :(得分:2)

DataSource dataSource = (DataSource) jdbcTemplate.getDataSource();
LOGGER.info("Max Idle: " + dataSource.getMaxIdle());
LOGGER.info("Max Active: " + dataSource.getMaxIdle());
LOGGER.info("Active: " + dataSource.getNumActive());
LOGGER.info("Idle: " + dataSource.getNumIdle());

参考此链接 - https://numberformat.wordpress.com/2017/10/20/configuring-a-connection-pool-in-spring-using-dbcp2/

答案 1 :(得分:1)

根据配置中使用的实际连接池(如dbcp2等),您可以尝试将池包的日志记录级别设置为debug / trace,并查看池是否为您提供此信息。通常,池提供此信息。你有另一个选择,通常你使用Spring Boot的数据源将自己注册到JMX if,它有一个属性" MBeans"以及NumActive等其他人。您可以在应用程序中编写一个定时器代码,该代码在特定时间间隔触发,查询JMX MBean并在日志中打印信息。要检查MBean中的可用数据,可以将VisualVM / JConsole连接到您的应用程序并访问MBeans选项卡。

答案 2 :(得分:0)

select count(*) from  v$session where status='ACTIVE' and user='YOUR_USER_ID'