2012-06-26 10 views
5

¿Hay algo similar al exportador Spring JMX por ahí SIN usando el marco Spring?Marco exportador JMX similar al exportador Spring JMX

SimpleJMX parece ser razonable, pero también parece ser un marco muy joven impulsado solo por una sola persona.

Estoy en la necesidad de exponer un montón de atributos, métodos y clases como JMX, pero no quiero jugar con la API JMX y escribir montones de interfaces JMX.

Y no hay forma de introducir Spring en el proyecto (en caso de que lo pregunte). Cualquier sugerencia o idea es muy apreciada :-)

Respuesta

2

Bien, he evaluado rápidamente SimpleJMX y JMXUtils. Ambos funcionan como se esperaba y son muy similares al exportador Spring JMX. Sin embargo, encuentro que JMXUtils es más útil en mi caso.

Con JMXUtils es muy fácil registrar/anular el registro de MBeans en un servidor mbean de plataforma ya iniciado. En mi caso, estaba usando GlassFish V3 como servidor de aplicaciones y no quería iniciar otro MBean Server solo para mis propios mbeans.

Por lo que puedo ver, la API de SimpleJMX no permite esto y se ve obligado a iniciar otro MBeanServer utilizando la API SimpleJMX y registrar los mbeans creados (muy fácil con la API) o comienza a jugar con el intento para registrar los mbeans en la plataforma del servidor mbean. El último es un poco más complicado y por lo tanto decidí usar JMXUtils.

La desventaja de JMXUtils es la manipulación del nombre del bean. SimpleJMX usa atributos en las anotaciones (domainName, beanName) que es muy útil, pero con JMXUtils debe conocer la sintaxis para nombrar mbeans cuando se usan dominios mbean. En general, no es un gran problema, pero para mi gusto SimpleJMX tiene la mejor solución para esto.

La conclusión es que ambas bibliotecas son excelentes y hacen su trabajo. Decidí usar JMXUtils.

+0

Para el registro, SimpleJMX sí le permite usar el servidor mbean de la plataforma. – Gray

2

I cam accross org.weakref.jmxutils library in commons-dbcp-jmx. Salida ManagedBasicDataSource.java para ver un ejemplo:

@Managed(description = "The current number of active connections that have been allocated from this data source.") 
public synchronized int getNumActive() { 
    return super.getNumActive(); 
} 

nunca he utilizado esa biblioteca mí mismo, pero parece que funciona.

+0

Gracias Tomasz. Esto suena muy útil. Lo probaré y lo compararé con SimpleJMX. Parece que JMXUtils es mantenido por una sola persona pero activo en github. Por lo tanto, AL MENOS HAY alternativas disponibles :-) – qupera

Cuestiones relacionadas