SNMPが有効になっているとGlassFishは起動しません

SNMPが有効になっているとGlassFishは起動しません

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 を実行するとそれが表示されます。

関連情報