■概要
Tomcat構築環境を停止した際に、メモリリークを示唆する警告メッセージがcatalinaログへ出力される場合があります。
■エラーメッセージ
<例>日本語メッセージ
29-Oct-2019 14:44:54.110 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Webアプリケーション[mc]は[MC Tracker Timer]という名前のスレッドを開始したようですが、停止に失敗しました。 これはメモリリークを引き起こす可能性が非常に高いです。 スレッドのスタックトレース:
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
29-Oct-2019 14:44:54.112 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Webアプリケーション[mc]は[112ee177-181b-4e45-8482-7e0b712eb882_Worker-1]という名前のスレッドを開始したようですが、停止に失敗しました。 これはメモリリークを引き起こす可能性が非常に高いです。 スレッドのスタックトレース:
java.lang.Object.wait(Native Method)
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
<例>英語メッセージ
29-Sep-2019 15:25:06.537 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [mc] appears to have started a thread named [MC Tracker Timer] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
29-Sep-2019 15:25:06.537 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [mc] appears to have started a thread named [fed3b90d-c0d3-4a61-b0b7-59c6a8ab1269_Worker-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
■対処方法
製品での対処は不要です。
これはTomcatの仕様によって出力されるメッセージであり、
実際にメモリリークが発生したことを示しているものではないため、製品動作に影響はありません。
プロセス停止に成功しているのであれば、その時点でメモリは解放されています。
そのため、警告メッセージが出力されても、基本的には無視していただいて問題ありません。
■参考
Tomcat Wiki-MemoryLeakProtection
参考外部URL:https://cwiki.apache.org/confluence/display/tomcat/MemoryLeakProtection
■区分/確認Ver
トラブルシュート/10.4.0.4