private RedisThrottlerJmxBean registerOrGetJmxBean() {
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
try {
synchronized (jmxBeanReferenceCountByName) {
// Get the reference count for the JMX bean.
Integer jmxBeanReferenceCount = jmxBeanReferenceCountByName.get(jmxBeanName);
if (jmxBeanReferenceCount == null) {
jmxBeanReferenceCount = 0;
}
// Create or get the JMX bean.
RedisThrottlerJmxBean jmxBean;
try {
jmxBean = new RedisThrottlerInternalJmxBean();
StandardMBean jmxBeanWrapper = new StandardMBean(jmxBean, RedisThrottlerJmxBean.class);
mbs.registerMBean(jmxBeanWrapper, jmxBeanName);
} catch (InstanceAlreadyExistsException ignored) {
jmxBean = JMX.newMBeanProxy(mbs, jmxBeanName, RedisThrottlerJmxBean.class);
}
// Increment the reference count and return the JMX bean.
jmxBeanReferenceCountByName.put(jmxBeanName, jmxBeanReferenceCount + 1);
return jmxBean;
}
} catch (Throwable error) {
String message = String.format("failed accessing the JMX bean (jmxBeanName=%s)", jmxBeanName);
throw new RuntimeException(message, error);
}
}
RedisThrottler.java 文件源码
java
阅读 28
收藏 0
点赞 0
评论 0
项目:log4j2-redis-appender
作者:
评论列表
文章目录