我可以获取 HikariPool 的“ActiveConnections”、“IdleConnections”、“ThreadsAwaitingConnection”、“TotalConnections”;
但当我获得“MaxConnections”时,会抛出“No such Attribute Max Connections”错误。
@RestController
public class HikariController {
private final static Logger LOGGER = LoggerFactory.getLogger(HikariController.class);
final private MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
@RequestMapping("/getMonitor")
public void getMonitor(){
hikariCPMap();
}
private void hikariCPMap() {
Hashtable<String, String> table = new Hashtable();
table.put("type", "Pool (ds1)");
ObjectName objectName = null;
try {
objectName = new ObjectName("com.zaxxer.hikari", table);
} catch (MalformedObjectNameException e) {
LOGGER.info(e.toString());
}
Set<ObjectName> objectNameSet = mBeanServer.queryNames(objectName, null);
StringBuilder sb = new StringBuilder();
for (ObjectName objectName1 : objectNameSet) {
try {
LOGGER.info("Active : {}",mBeanServer.getAttribute(objectName, "ActiveConnections").toString());
LOGGER.info("Idle : {}",mBeanServer.getAttribute(objectName, "IdleConnections").toString());
LOGGER.info("Waiting : {}",mBeanServer.getAttribute(objectName, "ThreadsAwaitingConnection").toString());
LOGGER.info("Total : {}",mBeanServer.getAttribute(objectName, "TotalConnections").toString());
LOGGER.info("Max{} : ",mBeanServer.getAttribute(objectName, "MaxConnections").toString());
} catch (Exception e) {
System.out.println(e);
}
}
}
}
如何修复它;
我用的Hikaricp版本是3.2.0
发生这种情况是因为
maxConnections
bean 中没有名为 HikariPool
的属性。
如果有必要,请尝试使用 MaximumPoolSize
的 HikariConfig
属性。