LoginSignup
0
0

More than 5 years have passed since last update.

【問題解決】Tomcat:「Java Options」の改行以降の設定は反映されない

Last updated at Posted at 2018-01-01

環境

  • Tomcat 8.5
  • Windows10
  • Java8

実現したいこと

GCログを出力したいです。
TomcatのJava Optionsに、GCログを出力する設定を定義します。
Java Optionsの設定は、tomcat8w.exeを開き、「Javaタブ→Java Options」で行います。

image

問題

Tomcatの「Java Options」に、GCログを出力するオプションを追記しました。
このとき、もともと設定されていたオプションと区別するため、改行を入れてしましました。

JavaOptions
-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.5
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.5
-Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\logging.properties

-verbose:gc
-Xloggc:/tmp/gclog_%t_%p.txt

image

「適用」ボタンを押して、Tomcatを再起動(stopボタンを押した後、startボタンを押す)しましたが、/tmpフォルダにGCログはありませんでした。
また、tomcat8w.exeを閉じて再度開いたところ、Java OptionsからGCログの設定が消えていました。

問題の確認

C:\Program Files\Apache Software Foundation\Tomcat 8.5\logsにあるcatalina.yyyy-mm-dd.logを確認しました。
「 Command line argument」の部分は、以下のようになっていました。
※ログを見やすくするため、先頭のタイムスタンプやクラス名を取り除きました。

catalina.2018-01-01.log
Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.5
Command line argument: -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.5
Command line argument: -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp
Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Command line argument: -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\logging.properties
Command line argument: exit
Command line argument: abort
Command line argument: -Xms128m
Command line argument: -Xmx256m

-Djava.util.logging.config.fileの次は、exitabortで、GCログの設定はありませんでした。
どうやらJava Optionsに改行があると、そこで終了するようです。

解決策

Java Optionsから改行を取り除きました。

javaoptions
-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.5
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.5
-Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\logging.properties
-verbose:gc
-Xloggc:/tmp/gclog_%t_%p.txt

image

catalina-2018-01-01.log
Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.5
Command line argument: -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.5
Command line argument: -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp
Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Command line argument: -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\logging.properties
Command line argument: -verbose:gc
Command line argument: -Xloggc:/tmp/gclog_%t_%p.txt
Command line argument: exit
Command line argument: abort
Command line argument: -Xms128m
Command line argument: -Xmx256m

catalina-yyyy-mm-dd.logには、GC Logの設定が記載されていました。
そして、/tmpフォルダにgclog_2018-01-01_15-39-23_pid18096.txtという名前のGCログが出力されました。

備考

当たり前なことかもしれませんが、Tomcat設定ダイアログの「適用」ボタンを押さないと、Java Optionの変更が反映されません。
私は、適用ボタンを押し忘れ、「なぜ反映されないんだ」と少し悩みました。

まとめ

TomcatのJava Optionsに改行を含めない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0