
У меня есть сервер приложений GlassFish v3, работающий на 64-битном Debian Lenny. Все работает нормально, за исключением того, что я хотел бы контролировать экземпляр JVM GF с помощью SNMP. Однако каждый раз, когда я пытаюсь включить его, добавляя следующее <jvm-options>
в 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 отказывается запускаться:
$ asadmin start-domain
Waiting for DAS to start .Error starting domain: default.
The server exited prematurely with exit code 1.
Command start-domain failed.
$
Также нет ничего проясняющего (ну, вообще ничего) в jvm.log или server.log. Файл snmp.acl содержит:
acl = {
{
communities = public
access = read-only
managers = localhost
}
}
и имеет значение chmod 600 (я знаю, что проблема не в этом, потому что на самом деле произойдет сбой с ошибкой о правах доступа, если будет установлено значение, отличное от 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)
решение1
-Dcom.sun.management варианты естьСолнцерасширение JVM. Это не часть спецификации JVM, и поэтому они не доступны вOpenJDK!
В любом случае, даже используя Sun JVM, я получил фатальную ошибку при развертывании приложений на моем работающем кластере. Возможно, это намеренно сделано Sun, потому что они продали расширение для мониторинга SNMP.
решение2
У меня была та же проблема. После включения SNMP Glassfish больше не запускается. Решение простое и описано здесь:http://www.randombugs.com/java/glassfish/snmp-support-glassfish-211-cluster-support.html
Просто установите правильные разрешения для вашего 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
решение3
Вы, вероятно, уже проверили, но прослушивает ли кто-нибудь этот порт?
netstat -an | grep LISTEN это покажет.