Charlie
Charlie

Reputation: 3374

Spring Boot - How to check number of active connections in the connection pool

I am using Spring Boot 1.5.17 with multiple data sources configured. One of my data sources is configured as follows.

@Primary
@Bean
@ConfigurationProperties("app.primary.datasource")
public DataSource primaryDataSource() {

    return DataSourceBuilder.create().build();
}

Now how do I get or log the number of active connections in the connection pool for this data source?

Upvotes: 5

Views: 4906

Answers (2)

justCurious
justCurious

Reputation: 977

Solution (Kotlin code):

    @Autowired  var dataSource: DataSource
    val hikaridataSource = dataSource as HikariDataSource
    logger.info(
         active: ${hikaridataSource.hikariPoolMXBean.activeConnections} " + "idle: ${hikaridataSource.hikariPoolMXBean.idleConnections} " + "threadsAwaitingConnection: ${hikaridataSource.hikariPoolMXBean.threadsAwaitingConnection}"
    )

Upvotes: 0

Julin Alex
Julin Alex

Reputation: 56

It's a bit late , but DataSource interface doesn't have any methods that lets you do this, but if you are using HikariCP (which is the default).

You could do this.

(HikariDataSource)dataSource).getHikariPoolMXBean().getActiveConnections()

Upvotes: 3

Related Questions