Hikari线程池状态监控

时间:2025-03-30 10:26:08
@Component @EnableScheduling @Controller public class HikariDataTest { private HikariPoolMXBean poolProxy; @PostConstruct public void test() { new Thread(()->{ HikariDataSource hikaridatasource = new HikariDataSource(); ("jdbc:mysql://192.168.31.15:96?characterEncoding=utf8&useTimezone=true&serverTimezone=GMT%2B8&useSSL=false"); ("root"); ("");*** (""); (true); ("HikariConnectionPool"); MBeanServer mBeanServer = (); ObjectName poolName = null; try { poolName = new ObjectName(":type=Pool (" + () + ")"); } catch (MalformedObjectNameException e) { (); } poolProxy = (mBeanServer, poolName, ); Connection conn = null; try { conn = (); } catch (SQLException e) { (); } Statement sm = null; try { sm = (); } catch (SQLException e) { (); } ResultSet rs = null; for (int i = 0; i < 999999999; i++) { try { rs = ("select username from pg_security_db.sys_user "); } catch (SQLException e) { (); } } try { (); } catch (SQLException e) { (); } try { (); } catch (SQLException e) { (); } try { (); } catch (SQLException e) { (); } (); }).start(); } @Scheduled(cron = "0/10 * * * * *") public void HikariMonitor() { if(poolProxy == null) { ("Hikari not initialized,please wait..."); }else { ("HikariPoolState = " + "Active=[" + (() + "] " + "Idle=[" + (() + "] " + "Wait=["+()+"] " + "Total=["+()+"]"))); } } }