Sim*_*n B 5 java hibernate jmx
我正在使用Hibernate 4.3和Guice 1.0运行java webapp(wicket 6.13)
我正在尝试配置Hibernate,以便我可以通过JMX框架访问运行时信息.
我没有使用spring,任何人都可以指出如何在hibernate 4.3上手动启用JMX.
我探讨了JmxService,JmxServiceInitiator,JmxServiceImpl,StandardServiceRegistryImpl
我还在AvailableSettings中找到了以下设置:
"hibernate.jmx.enabled";
"hibernate.jmx.usePlatformServer";
"hibernate.jmx.agentId";
"hibernate.jmx.defaultDomain";
"hibernate.jmx.sessionFactoryName";
Run Code Online (Sandbox Code Playgroud)
我已将jmx.enabled true设置添加到我的hibernate.cfg.xml文件中,但这没有任何效果.
我还不确定该如何解决这个问题.
任何帮助非常感谢
在重构hibernate之后似乎是一个bug.有关详细信息,请参阅https://hibernate.atlassian.net/browse/HHH-6190
这是我使用的一种解决方法,利用java动态代理来表示来自hibernate的统计接口,以及默认的平台mbean服务器:
@MXBean
public interface StatisticsMXBean extends Statistics {
}
public void initStatistics(SessionFactory sessionFactory) {
ObjectName statsName = new ObjectName("org.hibernate:type=statistics");
MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
final Statistics statistics = sessionFactory.getStatistics();
statistics.setStatisticsEnabled(true);
Object statisticsMBean = Proxy.newProxyInstance(getClass().getClassLoader(), new Class<?>[] { StatisticsMXBean.class }, new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return method.invoke(statistics, args);
}
});
mbeanServer.registerMBean(statisticsMBean, statsName);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6477 次 |
| 最近记录: |