维护远程MBeanServer和JVM上的JMX连接和加载

时间:2013-01-30 12:23:01

标签: java performance jmx

在我的应用程序中,我使用Remote JVM的MBeanServer创建和维护多个连接。 我想汇集这些连接。但不确定他们是否在Remote MBeanServer上加载任何负载。

我想知道 维护与远程JVM MBean服务器的空闲rmi JMX连接是否将任何负载放在远程JVM上?

1 个答案:

答案 0 :(得分:1)

这取决于实际的JMX远程协议。 JMX / RMI 实际上非常繁琐,并且会启动连接检查线程。 JMXMP 效率更高,但您仍会看到其他连接的累积开销,因此它将在资源利用率与建立新(或共享)连接的成本之间进行权衡。

你能详细说明你想要游泳的原因吗?

====更新====

您可以使用Apache Commons Pool。创建GenericKeyedObjectPool的实例。PoolableObjectFactory实现应该包装JMXConnectorFactory,您可以创建包含JMXServiceURL的复合键类以及借用连接时要使用的凭据。然后,对象工厂可以在borrow呼叫上分解密钥,并在activate呼叫上获取经过身份验证的连接。

实际的池化对象应该是某种包装器,因为你需要在makeObject调用中创建一个“断开连接”的实例(并且在标准的JMX远程处理中没有这样的东西),然后在激活时“连接”它,如果它已经没有连接。