【発生条件】
Java 11 を利用している場合
iAP/Accel Platform/2018 Winter 以降
【原因】
Attach API の仕様変更があったため。
【回避方法】
JVM オプションに -Djdk.attach.allowAttachSelf=true を追加する
【詳細】
Ehcache のメモリサイズの計算には、Sizeof Engine という機能が利用されます。
「Failed to attach to VM and load the agent」というメッセージは、Sizeof Engine の 1 つの実装がロードできなかった際に出力されます。
Sizeof Engine は 3 つの実装が用意されており、このメッセージが出力された場合には別の実装が利用されるため、運用等に影響はありません。
バージョンアップ等で以前のバージョン(Java 8 利用時)と同じ実装を利用したい場合には、Resin 起動時の JVM オプションに -Djdk.attach.allowAttachSelf=true を追加してください。
-Djdk.attach.allowAttachSelf=true を追加することで、「Failed to attach to VM and load the agent」というメッセージは出力されず、代わりに以下の様なメッセージが出力されます。
[INFO] n.s.e.p.s.AgentLoader - []Extracted agent jar to temporary file tmp\ehcache-sizeof-agentXXXXXXXXXXXXXXXXXXXXX.jar
[INFO] n.s.e.p.s.AgentLoader - []Trying to load agent @ tmp\ehcache-sizeof-agent.XXXXXXXXXXXXXXXXXXXXXjar
-- 対象 ------------------------------------------------------------------------
iAP/Accel Platform/2018 Winter 以降
--------------------------------------------------------------------------------
FAQID:1000
ログイン画面表示時に、ログに Failed to attach to VM and load the agent: class java.lang.reflect.InvocationTargetException: null というメッセージが出力されます。