1

jolokia を Tomcat に統合しました (Tomcat 7.0.53、jdk 1.8.0_45)

tomcat-directory/bin/setenv.sh で javaagent を構成しました。

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/jolokia-jvm-1.2.0-agent.jar=config=/path/to/config.properties"

今、Tomcatをシャットダウンするのに問題があります。ps は、Java プロセスが既に実行されていることを示しています。シャットダウンの出力は次のとおりです。

-bash-4.1$ ./shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat/7.0.53/instance/ingest-news
Using CATALINA_HOME:   /usr/local/tomcat/7.0.53/instance/ingest-news
Using CATALINA_TMPDIR: /usr/local/tomcat/7.0.53/instance/ingest-news/temp
Using JRE_HOME:        /usr/local/java64/jdk1.8.0_45
Using CLASSPATH:       /usr/local/tomcat/7.0.53/instance/ingest-news/bin/bootstrap.jar:/usr/local/tomcat/7.0.53/instance/ingest-news/bin/tomcat-juli.jar
Using CATALINA_PID:    /var/run/tomcat/ingestnews.pid
Tomcat did not stop in time. PID file was not removed. To aid diagnostics a thread dump has been written to standard out.

これはスレッド ダンプです。

INFO: Destroying ProtocolHandler ["ajp-bio-8009"]
2015-07-10 11:46:04
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode):

"DestroyJavaVM" #31 prio=5 os_prio=0 tid=0x00007f69f05c4800 nid=0x370a waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Keep-Alive-Timer" #22 daemon prio=8 os_prio=0 tid=0x00007f6974142800 nid=0x372f waiting on condition [0x00007f697eefd000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:172)
        at java.lang.Thread.run(Thread.java:745)

"Thread-7" #20 daemon prio=5 os_prio=0 tid=0x00007f6980435000 nid=0x372b runnable [0x00007f69b4dc6000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.EPoll.epollWait(Native Method)
        at sun.nio.ch.EPollPort$EventHandlerTask.poll(EPollPort.java:194)
        at sun.nio.ch.EPollPort$EventHandlerTask.run(EPollPort.java:268)
        at java.lang.Thread.run(Thread.java:745)

"PoolCleaner[683287027:1436521533079]" #19 daemon prio=5 os_prio=0 tid=0x00007f698039d800 nid=0x372a in Object.wait() [0x00007f69b52c7000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Timer.java:552)
        - locked <0x00000000c51153f0> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:505)

"GC Daemon" #16 daemon prio=2 os_prio=0 tid=0x00007f69f04ec000 nid=0x371e in Object.wait() [0x00007f69b5d6b000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000c473d598> (a sun.misc.GC$LatencyLock)
        at sun.misc.GC$Daemon.run(GC.java:117)
        - locked <0x00000000c473d598> (a sun.misc.GC$LatencyLock)

"Service Thread" #15 daemon prio=9 os_prio=0 tid=0x00007f69f02dd000 nid=0x371b runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread2" #14 daemon prio=9 os_prio=0 tid=0x00007f69f02d1800 nid=0x371a waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #13 daemon prio=9 os_prio=0 tid=0x00007f69f02c7800 nid=0x3719 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #12 daemon prio=9 os_prio=0 tid=0x00007f69f02b0000 nid=0x3718 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Jolokia Agent Cleanup Thread" #11 daemon prio=5 os_prio=0 tid=0x00007f69f02bc800 nid=0x3717 in Object.wait() [0x00007f69d85c3000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Thread.join(Thread.java:1245)
        - locked <0x00000000c47b9298> (a org.jolokia.discovery.MulticastSocketListenerThread)
        at java.lang.Thread.join(Thread.java:1319)
        at org.jolokia.jvmagent.CleanupThread.joinThreads(CleanupThread.java:110)
        at org.jolokia.jvmagent.CleanupThread.run(CleanupThread.java:60)


"Thread-5" #10 prio=5 os_prio=0 tid=0x00007f69ac001000 nid=0x3716 runnable [0x00007f69d84c2000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
        at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
        at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
        - locked <0x00000000c47b9a40> (a sun.nio.ch.Util$2)
        - locked <0x00000000c47b9a30> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000000c47b9898> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
        at sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:352)
        at java.lang.Thread.run(Thread.java:745)

"Thread-3" #8 prio=5 os_prio=0 tid=0x00007f69f02bb000 nid=0x3714 runnable [0x00007f69d86c4000]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainDatagramSocketImpl.receive0(Native Method)
        - locked <0x00000000c47b9638> (a java.net.PlainDatagramSocketImpl)
        at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:144)
        - locked <0x00000000c47b9638> (a java.net.PlainDatagramSocketImpl)
        at java.net.DatagramSocket.receive(DatagramSocket.java:812)
        - locked <0x00000000c43e3998> (a java.net.DatagramPacket)
        - locked <0x00000000c47b95e8> (a java.net.MulticastSocket)
        at org.jolokia.discovery.MulticastSocketListenerThread.receiveMessage(MulticastSocketListenerThread.java:113)
        at org.jolokia.discovery.MulticastSocketListenerThread.run(MulticastSocketListenerThread.java:70)

"server-timer" #7 daemon prio=5 os_prio=0 tid=0x00007f69f026b000 nid=0x3713 in Object.wait() [0x00007f69d87c5000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Timer.java:552)
        - locked <0x00000000c460e9c0> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:505)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f69f017e000 nid=0x3712 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f69f0146000 nid=0x3711 in Object.wait() [0x00007f69d91fe000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
        - locked <0x00000000c43e39c0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f69f0144000 nid=0x3710 in Object.wait() [0x00007f69d92ff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
        - locked <0x00000000c43e3a00> (a java.lang.ref.Reference$Lock)

"VM Thread" os_prio=0 tid=0x00007f69f013f000 nid=0x370f runnable

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f69f001f000 nid=0x370b runnable

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f69f0021000 nid=0x370c runnable

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f69f0022800 nid=0x370d runnable

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f69f0024800 nid=0x370e runnable

"VM Periodic Task Thread" os_prio=0 tid=0x00007f69f02df800 nid=0x371c waiting on condition

JNI global references: 269

Heap
 PSYoungGen      total 284672K, used 39633K [0x00000000ec100000, 0x0000000100000000, 0x0000000100000000)
  eden space 250880K, 3% used [0x00000000ec100000,0x00000000ec960a58,0x00000000fb600000)
  from space 33792K, 91% used [0x00000000fdf00000,0x00000000ffd53bd0,0x0000000100000000)
  to   space 37888K, 0% used [0x00000000fb600000,0x00000000fb600000,0x00000000fdb00000)
 ParOldGen       total 89600K, used 41901K [0x00000000c4200000, 0x00000000c9980000, 0x00000000ec100000)
  object space 89600K, 46% used [0x00000000c4200000,0x00000000c6aeb770,0x00000000c9980000)
 Metaspace       used 51923K, capacity 52642K, committed 52864K, reserved 1095680K
  class space    used 6257K, capacity 6462K, committed 6528K, reserved 1048576K

catalina_opts から javaagent を削除すると、すべてが正常に機能するようになりました。stackoverflow で検索しましたが、解決策が見つかりませんでした。

4

1 に答える 1

1

これは 1.2.3 で修正された既知の問題です --> https://github.com/rhuss/jolokia/issues/155

少なくとも 1.2.3 にアップグレードすることをお勧めします。できればもちろん、最新かつ最適なバージョンの 1.3.1 にアップグレードすることをお勧めします ;-)

于 2015-07-10T11:20:33.707 に答える