UbuntuのJava環境は、以前と比べて充実しています。
JDKは、SunとOpenJDKがDebianパッケージで提供されています。
アプリケーションサーバもTomcat6やJBoss、開発ツールもeclipse、maven、Jakartaのライブラリもaptで導入できます。
導入は、簡単になりましたが設定は、戸惑うかもしれません。
いくつかの慣例を知っていると、無用なトラブルを回避できます。
JXMを設定して、設定の慣例を見ていきたいと思います。
JMXの設定
Javaの設定ファイルは、/etc/java-6-*に格納されています。
OpenJDKであれば、/etc/java-6-openjdk、Sunであれば、/etc/java-6-sunです。
$ ls /etc/java-6-openjdk/ accessibility.properties images psfontj2d.properties calendars.properties jvm.cfg security content-types.properties logging.properties sound.properties flavormap.properties management swing.properties fontconfig.bfc net.properties fontconfig.properties psfont.properties.ja $
JMXは、managementディレクトリ下のファイルで設定します。
jmxremote.accessとjmxremote.passwdでリモートからの接続のためのACLやユーザを定義できます。
デフォルトで定義されているmonitorRoleのコメントアウトをはずすだけです。
(本番運用では、パスワードの変更が必須です。)
$ hg diff diff -r 958021231812 management/jmxremote.password --- a/management/jmxremote.password Wed Oct 07 23:38:39 2009 +0900 +++ b/management/jmxremote.password Wed Oct 07 23:56:54 2009 +0900 @@ -59,6 +59,6 @@ # Following are two commented-out entries. The "measureRole" role has # password "QED". The "controlRole" role has password "R&D". # -# monitorRole QED +monitorRole QED # controlRole R&D $
Tomcat6のJMX設定
/etc/defaultにパッケージのデフォルト設定ファイルがあります。
Tomcat6の場合は、/etc/default/tomcat6にJAVA_OPTSに追加のオプションを設定することでJMXを有効にできます。
$ cd /etc/default/ $ hg diff tomcat6 diff -r 5e6aa3efb832 tomcat6 --- a/tomcat6 Wed Oct 07 23:40:01 2009 +0900 +++ b/tomcat6 Thu Oct 08 00:09:39 2009 +0900 @@ -14,6 +14,7 @@ # Arguments to pass to the Java virtual machine (JVM). #JAVA_OPTS="-Djava.awt.headless=true -Xmx128M" +JAVA_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" # Java compiler to use for translating JavaServer Pages (JSPs). You can use all # compilers that are accepted by Ant's build.compiler property. $
Tomcat6の再起動
パッケージがサービスとして動作する場合には、/etc/init.dに起動/停止のためのシェルが格納されます。
Tomcat6パッケージは、/etc/init.d/tomcat6で起動/停止します。
たいていは、オプションなしで起動すると簡単なヘルプがでます。
status, start, stop, restartといったオプションが用意されています。
$ sudo /etc/init.d/tomcat6 * Usage: /etc/init.d/tomcat6 {start|stop|restart|try-restart|force-reload|status} $ sudo /etc/init.d/tomcat6 status * Tomcat servlet engine is running with pid 16332 $ sudo /etc/init.d/tomcat6 restart * Stopping Tomcat servlet engine tomcat6 ...done. * Starting Tomcat servlet engine tomcat6 ...done. $