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