
64 ビット Debian Lenny で GlassFish v3 アプリケーション サーバーを実行しています。すべて正常に動作していますが、GF の JVM インスタンスを 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仕様の一部ではないため、オープンJDK!
とにかく、Sun JVM を使用していても、実行中のクラスターにアプリケーションをデプロイするときに致命的なエラーが発生しました。SNMP 監視用の拡張機能を販売していたため、Sun による意図的なエラーなのかもしれません。
答え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 を実行するとそれが表示されます。