¿Se puede ejecutar un MBean bajo Tomcat?
Pregunta
Tenemos 2 aplicaciones que se ejecutan bajo JBoss. Estoy buscando una manera de reducir la sobrecarga del servidor. La aplicación principal se ejecuta bajo Tomcat. La otra aplicación está formada por MBeans. ¿Hay una manera de ejecutar MBeans bajo Tomcat?
Se aprecian sugerencias alternativas.
Solución
Los MBeans son una parte de la especificación JMX que se incluye en el JRE. Debería ser posible ejecutar MBeans bajo Tomcat. Tomcat 5 o posterior proporciona un servidor MBean.
Otros consejos
Puede usar los siguientes argumentos de JVM para iniciar Tomcat con MBean habilitado
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=4444 (could be anything)
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
También debe usar el servidor MBean que está en Tomcat. Debe encontrarlo a través de:
// find the existing MBean server (tomcat's) in lieu of
// creating our own
//
ArrayList<MBeanServer> mbservers = MBeanServerFactory
.findMBeanServer(null);
int nservers = mbservers.size();
if (nservers > 0) {
//
// TODO: A better way to get the currently active server ?
// For some reason, every time the webapp is reloaded there is one
// more instance of the MBeanServer
mbserver = (MBeanServer) mbservers.get(nservers - 1);
}
if (mbserver == null) {
mbserver = MBeanServerFactory.createMBeanServer();
}
Pruebe esto http://community.jboss.org/wiki/JBossASTuningSliming . Seguro que tienes muchos servicios sin uso.