-
Notifications
You must be signed in to change notification settings - Fork 3k
MBean (JMX) Monitoring and Management
The JMX MBean for HikariCP exposes:
- Idle Connection count
- Active Connections (in use)
- Total Connections
- The number of threads waiting for a connection
👉 In order to use JMX, you must set the pool property registerMbeans=true
.
Note these values are extremely ephemeral and reflect a snapshot in time when measured. As each statistic is time-sensitive and collected independently, it is possible for values to not "add up" over short periods of time. Do not base any programmatic decisions based on these values, they are for monitoring purposed only.
Additionally, the following actions are invocable against the MBean:
- softEvictConnections()
- suspendPool()1
- resumePool()1
1 This methods are only available if the pool has been configured with allowPoolSuspension=true
.
These values are visible in a JMX management console such as jconsole.
The MBean is registered with the name:
com.zaxxer.hikari:type=Pool (poolName
)
where poolName
is a name you can set on the HikariConfig using setPoolName("foo")
, for example.
Programatic access goes something like this:
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (foo)");
HikariPoolMXBean poolProxy = JMX.newMXBeanProxy(mBeanServer, poolName, HikariPoolMXBean.class);
int idleConnections = poolProxy.getIdleConnections();
The accessible attributes are IdleConnections, ActiveConnections, TotalConnections, ThreadsAwaitingConnection
. Similarly, the softEvictConnections()
and suspendPool()/resumePool()
methods can be invoked using the MBean proxy.
The following properties are also configurable in real-time on the HikariConfig MBean as the pool is running via a JMX management console or programmatically as above:
connectionTimeout
idleTimeout
maxLifetime
minimumIdle
maximumPoolSize