Java:我们可以毫无问题地重用 MBeanServerConnection 吗?

标签 java jmx

  1. 我们可以将 MBeanServerConnection 对象分配给静态变量并重用吗?
  2. 如果是,我们需要在哪一刻调用 JMXConnector.close() 方法?

     public class MyClass
     {
         public static JMXConnector jmxc = . . .
         public static MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
    
         .........
    
    
         public logSomeJmxStats() 
         {
            mbsc.invoke(.....)
         }
    
         public updateSomeJmxStats() 
         {
            mbsc.invoke(.....)
         }
    }
    

该 Java 类由作为服务运行的 Java 应用程序使用。

最佳答案

这来自 JMXConnector.getMBeanServerConnection 的文档:

For a given JMXConnector and Subject, two successful calls to this method will usually return the same MBeanServerConnection object, though this is not required.

所以我认为您可以安全地重复使用它。尽管不重复使用它可能会更安全。

如果没有人要再次使用连接,您应该调用 close 。如果您不将连接放在静态字段中而是放在实例字段中,这可能会更容易实现。因此,当您关闭应用程序时,您可以挂接该应用程序并关闭连接。

关于Java:我们可以毫无问题地重用 MBeanServerConnection 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23238533/

相关文章:

java - 如何通过MBean获取数据

java - 将 Windows 上的 JConsole 与 Linux 上的远程 Java Springboot 应用程序连接时连接失败

java - Netty ChannelBuffer 4.0 版本

java - JSTL/EL 等效于测试 null 和列表大小?

java - Queue UnavailableException : no queue available to send.(队列或 session 可能已过期)

stub 中的 java.lang.SecurityException : Expecting a sun. rmi.server.UnicastRef2 远程引用

java - 当不是从 $JMETER_HOME/bin 运行时,Jmeter 无法使用 Prometheus JMX 代理启动

java - DC/OS JMX 访问 java 应用程序

java - JRE升级到JDK后Eclipse无法启动

Java:Eclipse 控制台不显示 Spring Controller 信息