2015-07-10 138 views
1

我整合椒與我的Tomcat(Tomcat的7.0.53,JDK 1.8.0_45)椒防止Tomcat關閉

我配置在Tomcat的目錄/ 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,但沒有找到任何解決方案。

回答