jjzjj

java - jmx mbean线程安全

如果我有一个类,它也是一个mbean,并且我在我的代码中仅在一个线程中使用该类的函数,并且还通过jmx调用一个函数,我应该同步该代码吗?谢谢 最佳答案 代码应该是线程安全的,是的。如果您选择使用synchronized使其成为线程安全的,那由您决定。通过JMX调用的MBean将由容器调用,使用它自己的线程,与您自己的代码的线程分开。 关于java-jmxmbean线程安全,我们在StackOverflow上找到一个类似的问题: https://stackove

java - Spring Ehcache MBean 监控

我正在使用Spring4.0.3.RELEASE和EHcache2.8.1。在JBoss7.1.1上通过applicationContext.xml中的以下配置,我的缓存运行良好。现在我想用MBean添加监控功能。我更改了applicationContext.xml中的配置,如下所示-添加了2个新bean“managementService”和“mbeanServer”,没有其他更改。这是当前配置。使用此配置,我在应用程序服务器启动时收到以下错误。14:05:32,208ERROR[org.springframework.web.context.ContextLoader](MSCse

java - 如何设置JMX监控的net.sf.ehcache.CacheManager名称?

我在使用JRE1.6部署在Tomcat6上的Web应用程序中使用EhCache1.4.0、Spring3.0.5。我通过JMX公开L2缓存管理,如下所示:ThecacheManagerconfiguration.truetruetruetruefalsefalseorg.hibernate.dialect.MySQLInnoDBDialecttrueorg.hibernate.cache.EhCacheProviderapplicationOne-web/ehcache.xmlorg.hibernate.cache.StandardQueryCacheFactory我必须允许使用jmx

java - 检测新注册的 MBean

我在Java1.6中使用平台MBean服务器,在OSGi容器中运行。主要将MBean用于统计计数​​器和事件。它们的实现在一个包中,但它们在其他几个包中实例化。每个MBean都会自动向平台MBean服务器注册自己。问题是,当我通过JMX附加并查询MBean时,我只获得当前已注册的那些,并且它们在实例化之前不会被注册(要么是因为静态类在第一次访问之前不存在,或者因为bundle还没有开始,或者计数器在某些逻辑中很深,直到第一次使用才会存在)我需要某种方式来订阅MBeans服务器中的“注册”事件。或者其他一些确定何时有新的MBean添加到服务器的方法。检测已删除的MBean会是一个额外的好

java - 是否有必要从 Platform MBean Server 注销 MBean?

我已经开始使用MBean来公开有关应用程序的一些信息。几乎全部的HOWTO/教程/博客文章/在线示例都在教您如何实现MBean并将其注册到MBean服务器,但从未提及(或只是粗略地)从服务器注销MBean。我担心一个MBean需要引用一个相当重量级的对象才能提供有关该对象的状态信息。PlatformMBeanServer是否维护对MBean的弱引用或其他类似技巧,以确保在您的应用程序不再持有对它的任何引用时它最终得到GC?通常不需要取消注册,从而解释为什么没有人在JMX教程中谈论它? 最佳答案 您不能“弱”地向服务器注册一个MBea

java - 为什么 JConsole 上的某些方法被禁用

我可以看到jconsole上的一些方法被禁用了。下面是com.sun.management.ThreadMXBean的截图javadocs对于这些MBean方法,请不要指定有关可访问性部分的任何内容。我认为这是一项安全功能,但我无法为此获得具体答案。这个问题的第二部分显然是如何创建可以在jconsole上有选择地禁用的自定义MBean实现。下面是系统配置:JConsoleversion"1.7.0-b147"Java(TM)SERuntimeEnvironment(build1.7.0-b147)JavaHotSpot(TM)64-BitServerVM(build21.0-b17,m

java - 我应该如何访问在同一 VM 中运行的 JMX MBeanServer?

对于一个以恒定间隔执行操作的简单Java库,我使用MXBeans实现了JMX管理,它按预期工作,我可以在JConsole中查询状态和设置参数、暂停/恢复操作等。现在我想创建一个Web应用程序-来显示和控制图书馆的操作。我不知道在Web应用程序中也使用相同的JMXAPI是否是个好主意,所以我需要一种方法来访问使用平台MBean服务器在同一VM中注册的MXBeans:MBeanServermbs=ManagementFactory.getPlatformMBeanServer();我注意到MBeanServer有一个queryMBeans方法。我应该使用这种方法来访问已注册的JMXAPIM

java - ManagementFactory.getPlatformMBeanServer() 与 MBeanServerFactory.createMBeanServer()

谁能解释一下两者之间的区别是什么?Javadoc对于我的正确理解来说真的很晦涩。我注意到的一件事是,如果我使用ManagementFactory.getPlatformMBeanServer()注册我的MBean,我可以在Jconsole中查看它们。但是,如果我使用MBeanServerFactory.createMBeanServer()就不是这样了。这是为什么呢?这是唯一的区别吗?谢谢。 最佳答案 ManagementFactory.getPlatformMBeanServer()返回对JVM中现有MBean服务器的引用。JCo

java - 自动启动 JBoss 服务 (MBean)

我正在尝试构建一个应该在每次启动服务器时自动启动的JBoss服务。我的服务有以下类结构:publicinterfaceCumbiaXPMServiceMBeanextendsorg.jboss.system.ServiceMBeanpublicclassCumbiaXPMServiceextendsorg.jboss.system.ServiceMBeanSupportimplementsCumbiaXPMServiceMBean我还有以下配置文件--jboss-service.xml--用于我的服务:jcumbia:service=cumbiaConsoleXPMEngine我的问题

java - 错误无法注册 mbean java.security.AccessControlException : access denied ("javax.management.MBeanTrustPermission" "register")

例如启动Elasticsearch5.5时:主要错误无法注册mbeanjava.security.AccessControlException:访问被拒绝(“javax.management.MBeanTrustPermission”“register”) 最佳答案 OracleJava1.8.0_131的解决方法是打开文件/lib/security/java.policy并将此行添加到grant部分(即大括号之间):permissionjavax.management.MBeanTrustPermission"register";