CATALINA_OPTSとJAVA_OPTSの違いとは?

ふと気になったので調べようとしたら、$CATALINA_HOME/bin/catalina.shのコメントに普通に説明が書かれていたことに気付いた。結論から言うと、stop時も使われるかどうかが異なる。以下はcatalina.shのコメントの抜粋。

  • CATALINA_OPTS


Java runtime options used when the "start", or "run" command is executed.


Java runtime options used when the "start", "stop", or "run" command is executed.

例えば-Xmxパラメータの指定などは、本来CATALINA_OPTSで十分と思われる。また、GCログの出力ファイル名に起動時の日時をつけたい場合なども、起動時だけ有効なCATALINA_OPTSを使うと簡単に行えてよい。例えば、$CATALINA_HOME/bin/setenv.shに以下のように設定する。


CATALINA_OPTS="-XX:+PrintGCDetails -Xloggc:$CATALINA_HOME/logs/gc.`date '+%Y-%m-%d-%H%M%S'`.log"

JAVA_OPTSに指定すると、停止用に起動されたJVM分の余計なファイルができるが、CATALINA_OPTSなら本来ほしいTomcat分のGCログだけにできるはず。$CATALINA_HOME/bin/setenv.shに書くのがきキレイかも。