Pequeño servidor web Java y JMX

Tengo algunos problemas para entender cómo vincular el agente JMX a mi TJWS (servidor web Tiny Java)

El servidor web está equipado con MBeans dinámicos que exponen sus interfaces de administración (atributos y operaciones) en tiempo de ejecución. Identificamos un conjunto de componentes como parte de TJWS y creamos para cada uno de ellos un MBean correspondiente. ThreadPool o HTTP Session son este tipo de componentes. Cuando se crean, los MBeans correspondientes reciben una referencia a estos componentes a través de su constructor. Cuando se crean, los MBeans correspondientes reciben una referencia a estos componentes a través de su constructor. Para cada componente, elegimos un conjunto de atributos significativos para ser monitoreados.

Entonces, ¿significa esto que tengo que modificar el código del servidor para que cree MBeans en los eventos de creación de componentes? O significa algo más? :)

Apreciaría si alguien pudiera señalarme en la dirección correcta

preguntado el 03 de mayo de 12 a las 15:05

¿Puede proporcionar un enlace a esa documentación? -

Necesito desarrollar los 3 modelos de implementación (daemon, componente, controlador), pero solo la ayuda con el modelo daemon sería genial. No sé, ¿tengo que agregar la creación de MBeans en el código del servidor y recuperar información a través de sockets, o tengo que hacerlo todo en un proceso separado y conectarlo todo al servidor a través de sockets?

1 Respuestas

Eché un vistazo al enlace que me enviaste. Solo puedo leer las primeras 3 páginas (sin pagar). Sin embargo, los documentos para TJWS no menciono nada sobre JMX o MBeans, por lo que asumo que los autores del artículo deben haber implementado los ganchos JMX ellos mismos.

Habiendo dicho eso, cada uno de los tres modelos descritos hace referencia a una "Aplicación administrada", lo que significa que la aplicación en sí debe proporcionar "ganchos" para exponer las interfaces de administración. (Lo siguiente es en su mayoría conjeturas de mi parte, ya que las partes accesibles del documento terminaron justo cuando comenzó la descripción...)

Modelo de demonio El MBeanServer y sus MBeans son remotos para la aplicación administrada, por lo que la aplicación debe proporcionar un medio para invocar de forma remota las funciones de administración expuestas. Esto podría ser RMI, REST, WebServices, etc.

Modelo de componente Igual que el modelo daemon, pero las funciones expuestas se pueden invocar localmente y no necesitan conexión remota.

Modelo de controlador Igual que el modelo de componentes.

Para ser honesto, a menos que se trate de un ejercicio académico, me quedaría con un modelo de componentes simplificado donde los componentes TJWS existentes están instrumentados e implementan interfaces MBean. Por ejemplo, sus ThreadPools implementarían interfaces MBean y proporcionarían atributos JMX como MaxThreadCount y ActiveThreadCount. Luego, estos MBeans deben registrarse en la plataforma MBeanServer de la máquina virtual local. (Asumiendo Java 1.5+)

La comunicación remota y la federación de MBeanServers se realizarán en el sentido de que la comunicación remota está integrada en la JVM (RMI, IIOP, WebServices y REST están todos disponibles) y la federación se puede implementar mediante Abrir DMK.

contestado el 23 de mayo de 17 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.