
Tengo un servidor de aplicaciones GlassFish v3 ejecutándose en Debian Lenny de 64 bits. Todo funciona bien, excepto que me gustaría monitorear la instancia JVM de GF con SNMP. Sin embargo, cada vez que intento habilitarlo agregando lo siguiente <jvm-options>
en domain.xml:
-Dcom.sun.management.snmp.port=10161
-Dcom.sun.management.snmp.acl.file=/path/to/snmp.acl
-Dcom.sun.management.snmp.interface=127.0.0.1
GlassFish se niega a comenzar:
$ asadmin start-domain
Waiting for DAS to start .Error starting domain: default.
The server exited prematurely with exit code 1.
Command start-domain failed.
$
Tampoco hay nada revelador (bueno, realmente nada en absoluto) en jvm.log o server.log. El archivo snmp.acl contiene:
acl = {
{
communities = public
access = read-only
managers = localhost
}
}
y es chmod 600 (sé que este no es el problema porque en realidad fallará con un error sobre los permisos si está configurado en un valor distinto de 600)
$ java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (build 1.6.0_0-b11)
OpenJDK 64-Bit Server VM (build 1.6.0_0-b11, mixed mode)
Respuesta1
-Dcom.sun.gestión las opciones sonSolextensión para JVM. No forma parte de la especificación JVM y, por lo tanto, no están disponibles enAbiertoJDK!
De todos modos, incluso usando Sun JVM, obtuve un error fatal al implementar aplicaciones en mi clúster en ejecución. Tal vez sea intencional por parte de Sun porque vendieron una extensión para el monitoreo SNMP.
Respuesta2
Yo tuve el mismo problema. Después de habilitar SNMP, Glassfish ya no se inicia. La solución es simple y se describe aquí:http://www.randombugs.com/java/glassfish/snmp-support-glassfish-211-cluster-support.html
Simplemente coloque los permisos correctos en su archivo acl.
[randombugs@jack]# chown <application user> /etc/java-6-sun/management/snmp.acl
[randombugs@jack]# chmod o-r /etc/java-6-sun/management/snmp.acl
[randombugs@jack]# chmod g-r /etc/java-6-sun/management/snmp.acl
Respuesta3
Probablemente ya lo hayas comprobado, pero ¿hay algo escuchando en ese puerto?
netstat-an | grep LISTEN lo mostrará.