当前位置: 首页 > 面试题库 >

使用JMX运行Hibernate 4.3(无spring)

云欣嘉
2023-03-14
问题内容

我正在使用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";

我已将jmx.enabled true设置添加到我的hibernate.cfg.xml文件中,但这没有任何效果。

我仍然不确定该怎么做。

任何帮助表示赞赏


问题答案:

重构为hibernate状态后,似乎是一个错误。有关详细信息,请参见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);
}


 类似资料:
  • 当我试图从UI运行我的jmx文件时,它运行得非常好。 但是,当我尝试使用mvn时, 它开始执行,但在我使用JSON提取器从响应中提取一些值时失败了。下面是我得到的错误, 正如本文所述,我在pom.xml中添加了多个库,但是问题没有得到解决。

  • 问题内容: 我正在尝试让JMX监视工作以监视测试kafka实例。 我有通过boot2docker在docker中运行的kafka(ches / kafka),但我无法正确配置JMX监视。我已经做了很多故障排除,而且我知道kafka实例运行正常(消费者和生产者都在工作)。当我尝试简单的JMX工具(jconsole和jvisualvm)并且都无法连接(不安全的连接错误,连接失败)时,就会出现问题。 注

  • 我有一个用TestNG运行的简单代码,但是我不能用Gradle运行,因为它说没有找到主方法,这并不奇怪,因为我使用注释。 但在这种情况下,如果必须使用Gradle,如何运行代码。 请注意,我对Gradle很陌生,对这方面的知识不多。 代码: 上面的代码与TestNG库完美运行。然而不是格拉德尔。 以下是我的Gradle构建设置: Gradle返回没有Main方法。 谢谢你的帮助。

  • 我想用Axis2构建一个客户端(只是一个客户端)。我使用Maven和OSGi(Felix)。我使用Maven成功地安装了它,但是当我使用PAX provision运行它时,出现了一系列错误。这是我在POM中的初始配置(加上AXIOM和WSDL4j的更多依赖项)。 这很好,但当我做pax:provision时 错误:Bundle axis2-transport-local[33]错误启动文件:bun

  • 问题内容: 连接到在Amazon EC2集群中运行的Java应用程序时遇到问题。我们绝对允许“ JMX端口”(通常是RMI注册表端口) 和 服务器端口(完成大部分工作)都进入所讨论实例的安全组。Jconsole连接但似乎挂起并且从不显示任何信息。 我们正在使用以下内容运行我们的java: 我们尝试过: Telnet 连接 到端口,但不显示任何信息。 我们可以在ssh上使用remote-X11在实例

  • 我们在连接到运行在AmazonEC2集群中的Java应用程序时遇到了问题。我们明确地允许“JMX端口”(它通常是RMI注册表端口)和服务器端口(它完成了大部分工作)对所讨论的实例的安全组。Jconsole连接但似乎挂起并且从未显示任何信息。 Telnets连接到端口,但不显示任何信息。 我们可以通过ssh使用remote-X11在实例本身上运行,它可以连接并显示信息。因此JRE将其导出到本地。 打