ã¹ã¬ãããã³ãããè¦ãWebLogic Serverã®ä¸ç #javaee
ãã®è¨äºã¯Java EE Advent Calendarã®7æ¥ç®ã§ãã
ååã®ããã°è¨äºãæ¯ãè¿ãã¨ãããä¸å¹´åãAdvent Calendarã§ããæ¸ãã¦ãªã訳ã§ãã
ããã§ããã°ããããã«ãã¿ãããããªã¨æã£ãã®ã§ãããä½ãæãæµ®ãã°ãªãâ¦
ãã¤ãã®WebLogic Server(以éãåºæ¬çã«WLSã¨ç¥)ãã¿ã§ã許ããã ããã
Javaã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã®ç¹å¾´çãªã¨ããã¯ãã¹ã¬ãã管çã«ããã¨ç§ã¯æã£ã¦ãã¾ãã
ããã¦ãããããã¥ã¼ãã³ã°è¦³ç¹ã¨ãã¦ãé常ã«éè¦ãªã¨ããã§ãã
ãã®ãããåã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã®å®è£
ã«ãã£ã¦ã工夫ãåããã¦ããã¨ããã§ãã
ãã®è¨äºã§ã¯ãã¹ã¬ãããã³ãããWLSã®ä¸çãå£éè¦ã¦ã¿ã¾ãããã
WLSã¹ã¬ãã管çæ¦è¦
ã¨ãã£ã¦ãããããªãã¹ã¬ãããã³ããè¦ã¦ãè¿·åã«ãªãã®ã§ãã¾ãã¯WLSã®ã¹ã¬ãã管çæ¦è¦ãç¥ã£ã¦ããã¾ãããã
æ¢ã«å¤ãã®åãããããè³æãããã¾ãã®ã§ã以ä¸è¾ºãã«ããå³ãåç
§ãã¦ãã ããã
- オラクルコンサルが実施するWebLogic Serverのパフォーマンスチューニング [PDF]
- Oracle WebLogic Serverチューニングのポイント
- WebLogic Server ワークマネージャ/オーバーロード・プロテクション
- WebLogic Server スレッド管理 - 概要
ç°¡åã«è¨ãã¨ã以ä¸ã®æ§æã«ãªã£ã¦ãã¾ãã
- ãªã¯ã¨ã¹ããåãä»ãã¦ã½ã±ãããªã¼ãã¼ã«æ¸¡ãListenã¹ã¬ãã
- ã½ã±ãããèªã¿è¾¼ãã§å®è¡ã¹ã¬ããã«åã渡ãMuxer(ãã«ããã¬ã¯ãµ)ã¹ã¬ãã
- å®éã®ã¢ããªã±ã¼ã·ã§ã³å¦çãªã©ãå®è¡ããå®è¡ã¹ã¬ãã
ããã¦ãã¢ããªã±ã¼ã·ã§ã³å¦çã«ã¯ä¸ã¤ã®å®è¡ã¹ã¬ãããã¼ã«ãå ±æãããããåã ã®ã¯ã¼ã¯ããã¼ã¸ã£ãæ§æãã¦å¶å¾¡ããããã«ãªã£ã¦ãã¾ãã
ã¹ã¬ãããã³ããåå¾ãã
ãã¦ãã¹ã¬ãããã³ããã©ããªã£ã¦ãããè¦ã¦ã¿ã¾ããããç°å¢ã¯ä»¥ä¸ã®éãã§ãã
ã¹ã¬ãããã³ããåå¾ããã«ã¯æ§ã
ãªæ¹æ³ãããã¾ãããæè¿*2ãªãjcmdã使ãã®ã常å¥æ段ã§ãããã
ã¹ã¬ãããã³ãã¯ããã®æç¹ã®ã¹ã¬ããç¶æ
ã®ã¹ãããã·ã§ãããªã®ã§å»ã
ã¨å¤ããã¾ããã以ä¸ã¯WLSèµ·åãå®äºãã(RUNNINGç¶æ
ã«ãªã£ã)ç´å¾ãããã®ãã®ã§ãã
é·ããªãã®ã§ãããã£ã¨é°å²æ°ã ãè¦ã¦ããã£ã¦ãèªã¿é£ã°ãã¦ãã ããã
$ jcmd 10898 weblogic.Server 10899 sun.tools.jcmd.JCmd $ jcmd 10898 Thread.print 10898: 2014-12-06 16:59:00 Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode): "DynamicListenThread[Default]" #45 daemon prio=9 os_prio=31 tid=0x00007fb0883cb800 nid=0x7203 runnable [0x000000012b3ef000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241) - locked <0x0000000781d33a28> (a java.lang.Object) at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31) at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:532) at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:414) at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173) at java.lang.Thread.run(Thread.java:745) "DynamicListenThread[Default[1]]" #44 daemon prio=9 os_prio=31 tid=0x00007fb085237000 nid=0x7003 runnable [0x000000012b2ec000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241) - locked <0x0000000781d7c6b8> (a java.lang.Object) at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31) at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:532) at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:414) at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173) at java.lang.Thread.run(Thread.java:745) "DynamicListenThread[Default[2]]" #43 daemon prio=9 os_prio=31 tid=0x00007fb0850e9800 nid=0x3207 runnable [0x000000012af44000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241) - locked <0x0000000781d7d6a8> (a java.lang.Object) at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31) at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:532) at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:414) at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173) at java.lang.Thread.run(Thread.java:745) "weblogic.GCMonitor" #41 daemon prio=5 os_prio=31 tid=0x00007fb088330000 nid=0x3707 in Object.wait() [0x000000012623c000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:142) - locked <0x0000000781a351d0> (a java.lang.ref.ReferenceQueue$Lock) at weblogic.platform.GCMonitorThread.waitForNotification(GCMonitorThread.java:86) at weblogic.platform.GCMonitorThread.run(GCMonitorThread.java:62) "Thread-18" #40 prio=5 os_prio=31 tid=0x00007fb085bc0000 nid=0x300b waiting on condition [0x0000000125312000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000007816d99f8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89) at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:724) at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1124) at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1116) at java.lang.Thread.run(Thread.java:745) "[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" #39 daemon prio=5 os_prio=31 tid=0x00007fb084c58000 nid=0x6d03 in Object.wait() [0x0000000128ca7000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247) - locked <0x0000000780cf2d08> (a weblogic.work.ExecuteThread) at weblogic.work.ExecuteThread.run(ExecuteThread.java:281) "ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" #38 daemon prio=5 os_prio=31 tid=0x00007fb084a81800 nid=0x6b03 runnable [0x0000000128ba4000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method) at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198) at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) - locked <0x0000000780a12978> (a sun.nio.ch.Util$2) - locked <0x0000000780a12968> (a java.util.Collections$UnmodifiableSet) - locked <0x0000000780a12838> (a sun.nio.ch.KQueueSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101) at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:529) at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:458) at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119) "ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" #37 daemon prio=5 os_prio=31 tid=0x00007fb0845d4000 nid=0x6903 runnable [0x0000000128aa1000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method) at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198) at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) - locked <0x0000000780a13310> (a sun.nio.ch.Util$2) - locked <0x0000000780a13300> (a java.util.Collections$UnmodifiableSet) - locked <0x0000000780a131e0> (a sun.nio.ch.KQueueSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101) at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:529) at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:458) at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119) "ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" #36 daemon prio=5 os_prio=31 tid=0x00007fb08557e800 nid=0x6703 runnable [0x000000012899e000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method) at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198) at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) - locked <0x0000000780a13ca8> (a sun.nio.ch.Util$2) - locked <0x0000000780a13c98> (a java.util.Collections$UnmodifiableSet) - locked <0x0000000780a13b78> (a sun.nio.ch.KQueueSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101) at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:529) at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:458) at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119) "ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" #35 daemon prio=5 os_prio=31 tid=0x00007fb0845b6000 nid=0x6503 runnable [0x000000012736f000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method) at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198) at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) - locked <0x0000000780a14640> (a sun.nio.ch.Util$2) - locked <0x0000000780a14630> (a java.util.Collections$UnmodifiableSet) - locked <0x0000000780a14510> (a sun.nio.ch.KQueueSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101) at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:529) at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:458) at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119) "Thread-17" #34 prio=5 os_prio=31 tid=0x00007fb0840eb800 nid=0x6107 waiting on condition [0x000000012726c000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x0000000780c018b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89) at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:724) at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1124) at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1116) at java.lang.Thread.run(Thread.java:745) "DoSManager" #33 daemon prio=6 os_prio=31 tid=0x00007fb0841e0800 nid=0x6303 waiting on condition [0x000000012749b000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at com.octetstring.vde.DoSManager.run(DoSManager.java:433) "VDE Transaction Processor Thread" #31 daemon prio=2 os_prio=31 tid=0x00007fb084b85800 nid=0x4d07 in Object.wait() [0x0000000127169000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:367) - locked <0x000000078097c808> (a com.octetstring.vde.backend.standard.TransactionProcessor) at com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:212) "[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" #26 daemon prio=5 os_prio=31 tid=0x00007fb08530a000 nid=0x5107 in Object.wait() [0x00000001257f7000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247) - locked <0x0000000780cf3ee0> (a weblogic.work.ExecuteThread) at weblogic.work.ExecuteThread.run(ExecuteThread.java:281) "[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" #25 daemon prio=5 os_prio=31 tid=0x00007fb085226000 nid=0x5307 in Object.wait() [0x00000001256f4000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247) - locked <0x0000000780d0e7f0> (a weblogic.work.ExecuteThread) at weblogic.work.ExecuteThread.run(ExecuteThread.java:281) "[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" #24 daemon prio=5 os_prio=31 tid=0x00007fb0848b8000 nid=0x4f0f in Object.wait() [0x00000001255f1000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247) - locked <0x0000000780d22830> (a weblogic.work.ExecuteThread) at weblogic.work.ExecuteThread.run(ExecuteThread.java:281) "weblogic.timers.TimerThread" #22 daemon prio=9 os_prio=31 tid=0x00007fb084512800 nid=0x5f03 in Object.wait() [0x0000000126e66000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at weblogic.timers.internal.TimerThread.doWait(TimerThread.java:114) - locked <0x00000007805f69e8> (a java.lang.Object) at weblogic.timers.internal.TimerThread.access$000(TimerThread.java:22) at weblogic.timers.internal.TimerThread$Thread.run(TimerThread.java:290) "weblogic.time.TimeEventGenerator" #21 daemon prio=9 os_prio=31 tid=0x00007fb086097800 nid=0x5d03 in Object.wait() [0x0000000126d63000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:286) - locked <0x0000000780675500> (a weblogic.time.common.internal.TimeTable) at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:117) at java.lang.Thread.run(Thread.java:745) "[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" #20 daemon prio=5 os_prio=31 tid=0x00007fb0845a6800 nid=0x5b03 in Object.wait() [0x00000001265c9000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247) - locked <0x000000078064c548> (a weblogic.work.ExecuteThread) at weblogic.work.ExecuteThread.run(ExecuteThread.java:281) "Timer-2" #19 daemon prio=5 os_prio=31 tid=0x00007fb08618e800 nid=0x5903 in Object.wait() [0x0000000125125000] 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 <0x00000007805f6cc0> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:505) "Attach Listener" #18 daemon prio=9 os_prio=31 tid=0x00007fb085c42800 nid=0x5703 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Timer-1" #17 daemon prio=5 os_prio=31 tid=0x00007fb08449a800 nid=0x5503 in Object.wait() [0x00000001259fd000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007805f7258> (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:502) at java.util.TimerThread.mainLoop(Timer.java:526) - locked <0x00000007805f7258> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:505) "Timer-0" #11 daemon prio=5 os_prio=31 tid=0x00007fb085bc4800 nid=0x4b03 in Object.wait() [0x00000001254ee000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x000000078064bdf8> (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:502) at java.util.TimerThread.mainLoop(Timer.java:526) - locked <0x000000078064bdf8> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:505) "Service Thread" #8 daemon prio=9 os_prio=31 tid=0x00007fb085056000 nid=0x4703 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C1 CompilerThread2" #7 daemon prio=9 os_prio=31 tid=0x00007fb084038800 nid=0x4503 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread1" #6 daemon prio=9 os_prio=31 tid=0x00007fb084038000 nid=0x4303 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread0" #5 daemon prio=9 os_prio=31 tid=0x00007fb084032000 nid=0x4103 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" #4 daemon prio=9 os_prio=31 tid=0x00007fb084006000 nid=0x3417 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007fb08581a800 nid=0x2d03 in Object.wait() [0x0000000121c71000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:142) - locked <0x0000000780204778> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:158) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209) "Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007fb08581a000 nid=0x2b03 in Object.wait() [0x0000000121b6e000] 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 <0x00000007800489b0> (a java.lang.ref.Reference$Lock) "main" #1 prio=5 os_prio=31 tid=0x00007fb085005000 nid=0xd03 in Object.wait() [0x000000010d8db000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:1130) - locked <0x00000007803aef20> (a weblogic.t3.srvr.T3Srvr) at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:538) at weblogic.Server.main(Server.java:65) "VM Thread" os_prio=31 tid=0x00007fb085815800 nid=0x2903 runnable "GC task thread#0 (ParallelGC)" os_prio=31 tid=0x00007fb08400a800 nid=0x2103 runnable "GC task thread#1 (ParallelGC)" os_prio=31 tid=0x00007fb08400b000 nid=0x2303 runnable "GC task thread#2 (ParallelGC)" os_prio=31 tid=0x00007fb08400c000 nid=0x2503 runnable "GC task thread#3 (ParallelGC)" os_prio=31 tid=0x00007fb08400c800 nid=0x2703 runnable "VM Periodic Task Thread" os_prio=31 tid=0x00007fb08501b000 nid=0x4903 waiting on condition JNI global references: 46
ã§ã¯è¦ã¦è¡ãã¾ãããã
ãã¹ã¦ã§ã¯ãªããJVMã§å©ç¨ããã¹ã¬ãã(ã³ã³ãã¤ã©ã¹ã¬ãããGCã¹ã¬ãããªã©)ã¯è§£èª¬ãã¾ããã®ã§ããäºæ¿ãã ããã
ã¾ããæ¨æ¸¬ãå¤ã
å«ãããã誤ã£ã¦ããç®æãããããããã¾ããããä½åã容赦ãã ããã¾ãã
ã¾ãã¯å ã»ã©è§£èª¬ãããªã¯ã¨ã¹ãå¦çã®è¦ã¨ãªãã¹ã¬ãã群ããã§ãã
Listenã¹ã¬ãã
ãDynamicListenThreadãããå§ã¾ãã¹ã¬ããã該å½ãã¾ããä¾ãã°ä»¥ä¸ã§ãã
"DynamicListenThread[Default]" #45 daemon prio=9 os_prio=31 tid=0x00007fb0883cb800 nid=0x7203 runnable [0x000000012b3ef000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241) - locked <0x0000000781d33a28> (a java.lang.Object) at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31) at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:532) at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:414) at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173) at java.lang.Thread.run(Thread.java:745)
ãµã¼ãã¼ã½ã±ããã§æ¥ç¶è¦æ±ãã²ãããå¾
æ©ãã¦ããæ§åã確èªã§ãã¾ããã
ãã®Listenã¹ã¬ããã¯ããªã¹ãã³ã°ãããã£ãã«ãã¨ã«ä½æããã¾ãã
ãã£ãã«ã¨ã¯ãªã¹ãã³ã°ããã¢ãã¬ã¹ã»ãã¼ã(æ£ç¢ºã«ã¯ãããã³ã«å«ã)ã®çµã¿åããã ã¨æã£ã¦ãã ããã
èµ·åæã®ãã°ã§ä»¥ä¸ã®ããã«åºåããã¾ãã
<Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 192.168.0.2:7001 for protocols iiop, t3, ldap, snmp, http.> <Notice> <Server> <BEA-002613> <Channel "Default[2]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, snmp, http.> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 0:0:0:0:0:0:0:1:7001 for protocols iiop, t3, ldap, snmp, http.>
ä¸è¨ã«åºã¦ããDefaultãã£ãã«ã¯å°ãç¹æ®ã§ããµã¼ãã¤ã³ã¹ã¿ã³ã¹åä½ã®ãªã¹ãã³ã°ã¢ãã¬ã¹ã¨ãã¼ãã«åºã¥ãã¦ä½æãããè¤æ°ã®ãããã³ã«ããµãã¼ããã¦ãã¾ãã
Default[1]ãDefault[2]ã®ããã«æ°åãã¤ãã¦ããã®ã¯ããªã¹ãã³ã°ã¢ãã¬ã¹ã空ã®å ´åãOSã«ãã¤ã³ãããã¦ãããã¹ã¦ã®IPã¢ãã¬ã¹ã«ç´ä»ãã¦æ§æãããããã§ãã
ãããããããã¯ã·ã§ã³ç°å¢ã§ã¯ããªã¹ãã³ã°ã¢ãã¬ã¹ã空ã«ãããã¨ã¯é¿ããæ示çã«åä¸ã®ã¢ãã¬ã¹ãæå®ãã¹ãã§ãããã以å¤ã®ã¢ãã¬ã¹ã§ãªã¹ãã³ã°ãããå ´åã¯ãã«ã¹ã¿ã ã®ãã£ãã«ãæ§æãããã¨ãã§ãããã®éã¯æ示çã«http(s)ãªã©ã®ãããã³ã«ãæå®ãã¾ãã
以åãWebLogic Server勉強会ã§ã話ããã®ã§ããããããã°åç
§ãã ããã
管çã³ã³ã½ã¼ã«ãããã£ãã«ãã¨ã®çµ±è¨æ å ±ãåå¾ãããã¨ãã§ãã¾ãã
- ç°å¢âãµã¼ãã¼â{ãµã¼ãã¼å}âç£è¦âãã£ãã«
ãã£ãã«ã«ã¤ãã¦ã®è©³ç´°ã¯ã以ä¸ã®ããã¥ã¢ã«ãã確èªã§ãã¾ãã
Muxer(ãã«ããã¬ã¯ãµ)ã¹ã¬ãã
ãExecuteThread: 'n' for queue: 'weblogic.socket.Muxer'ãã該å½ãã¾ããä¾ãã°ä»¥ä¸ã§ãã
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" #35 daemon prio=5 os_prio=31 tid=0x00007fb0845b6000 nid=0x6503 runnable [0x000000012736f000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method) at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198) at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) - locked <0x0000000780a14640> (a sun.nio.ch.Util$2) - locked <0x0000000780a14630> (a java.util.Collections$UnmodifiableSet) - locked <0x0000000780a14510> (a sun.nio.ch.KQueueSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101) at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:529) at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:458) at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)
ããã§ã¯NIOSocketMuxerã¨ããMuxerå®è£
ã使ããã¦ãããã¨ãåããã¾ãã
OSãã¨ã«Native Muxerå®è£
ãåå¨ãã¾ããä¾ãã°ãWindowsã ã¨NTSocketMuxerãUnixç°å¢ã ã¨PosixSocketMuxerãDevPollSocketMuxerãããã以åã¯ããã©ã«ãã§å©ç¨ããã¦ãã¾ããã*3
Nativeå®è£
ã¯ããã©ã¼ãã³ã¹ã¯ããã®ã§ãããç¨ã«ã¯ã©ãã·ã¥ãããã解æãã¥ããNativeã¡ã¢ãªãªã¼ã¯ãå¼ãèµ·ãããã¨ãããã¾ãã
ãã®ãããåãåãã¨ãã¦Java Socket Muxerã使ã£ãããå¥ã®Muxerå®è£
ãå©ç¨ããããã«å¤æ´ãããã¨ãã§ãã¾ãã
- ç°å¢âãµã¼ãã¼â{ãµã¼ãã¼å}âæ§æâãã¥ã¼ãã³ã°
Muxerã«ã¤ãã¦ã¯ã以ä¸ã®ããã¥ã¢ã«ãã確èªã§ãã¾ãã
å®è¡ã¹ã¬ãã
ã[STATE] ExecuteThread: 'n' for queue: 'weblogic.kernel.Default (self-tuning)'ãã該å½ãã¾ããä¾ãã°ä»¥ä¸ã§ãã
"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" #20 daemon prio=5 os_prio=31 tid=0x00007fb0845a6800 nid=0x5b03 in Object.wait() [0x00000001265c9000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247) - locked <0x000000078064c548> (a weblogic.work.ExecuteThread) at weblogic.work.ExecuteThread.run(ExecuteThread.java:281) "[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" #39 daemon prio=5 os_prio=31 tid=0x00007fb084c58000 nid=0x6d03 in Object.wait() [0x0000000128ca7000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247) - locked <0x0000000780cf2d08> (a weblogic.work.ExecuteThread) at weblogic.work.ExecuteThread.run(ExecuteThread.java:281)
ãã®å®è¡ã¹ã¬ãããä¸çªã®èã§ããä¾ãã°ãã³ã°ã¢ãããã¹ãã¼ãã¦ã³ãçºçããå ´åã¯ãã¢ããªã±ã¼ã·ã§ã³å¦çãåé¡ã«ãªã£ã¦ãããã¨ãå¤ããããã¹ã¬ãããã³ãã解æããéã«ã¯ããã®è¾ºããä¸å¿ã«è¦ã¦ãããã¨ã«ãªãã¾ãã
ä»åã¯è§£ææ¹æ³ã«ã¯è§¦ãã¾ãããã侍ãThreadLogicã¨ãã£ããã¼ã«ãå½¹ã«ç«ã¡ã¾ãã
ã¹ã¬ããåãæ§æããè¦ç´ ãç´°ããè¦ã¦è¡ãã¾ãããã
[STATE]
å®è¡ã¹ã¬ããã®ç®¡çç¶æ ãä»å ããã¦ããã以ä¸ã®3種é¡ãããã¾ãã
STATE | 説æ |
---|---|
ACTIVE | ã¹ã¬ããããªã¯ã¨ã¹ããå®è¡ä¸ã§ããããã¾ãã¯ãªã¯ã¨ã¹ããããã«å®è¡ã§ããç¶æ |
STANDBY | ã¢ã¯ãã£ããªã¹ã¬ãããã¼ã«ããåé¤ããã¦ãã¦ããªã¯ã¨ã¹ããããã«ã¯å¦çã§ããªãç¶æ |
STUCK | ãªã¯ã¨ã¹ããå®è¡ä¸ã ãããã°ããçµã£ã¦ãå®äºãã¦ããªãç¶æ |
ACTIVEã ããã¨ãã£ã¦å¿
ããããªã¯ã¨ã¹ããå®è¡ä¸ãªè¨³ã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã*4
STANDBYã§ããªãã¢ã¤ãã«ç¶æ
ã«ããªã£ã¦ããªãå ´åã¯ããªã¯ã¨ã¹ããå®è¡ãã¦ããã¨ã¿ãªããã¨ãã§ãããã®è©³ç´°ã¯JMX(管çã³ã³ã½ã¼ã«ãªã©)ã§ç¢ºèªã§ãã¾ãã
- ç°å¢âãµã¼ãã¼â{ãµã¼ãã¼å}âç£è¦âã¹ã¬ãã
STUCKã¯å°ãç¹æ®ãªç¶æ
ã§ããWLSã¯å®æçã«å®è¡ã¹ã¬ãããç£è¦ãã¦ãããããã©ã«ãã§600ç§(10å)以ä¸ãªã¯ã¨ã¹ããå®è¡ä¸ã®ã¹ã¬ããããã®ç¶æ
ã«ãã¼ã¯ãã¾ããâã¹ã¿ãã¯âã¨ã«ã¿ã«ãã§æ¸ãããçºé³ããã¨ãã¹ã¬ããã®è©±ãã"Stack"ã¨åéãããããã®ã§ãããè©°ã¾ã£ãã¨ããæå³ãã"Stuck"ã§ããã
ãã³ã°ã¢ãããé·æéç¶ãã¦ããå ´åã¯ãããããè¦ã¦ããã¨ããã§ãããããã°ã«ã以ä¸ã®ããã«åºåããã¾ãã
<Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "601" seconds working on the request "Workmanager: default, Version: 0, Scheduled=false, Started=true, Started time: 601951 ms ", which is more than the configured time (StuckThreadMaxTime) of "600" seconds in "server-failure-trigger". Stack trace: java.lang.Thread.sleep(Native Method) com.munzandmore.stuckthread.LongRunningEJB.threadSleep(LongRunningEJB.java:26) com.munzandmore.stuckthread.LongRunningEJB_x9v26k_NoIntfViewImpl.__WL_invoke(Unknown Source) weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:33) weblogic.ejb.container.internal.AsyncExecutor$Invoker.invoke(AsyncExecutor.java:205) weblogic.ejb.container.internal.AsyncExecutor.run(AsyncExecutor.java:73) weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548) weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) weblogic.work.ExecuteThread.run(ExecuteThread.java:263) >
ExecuteThread: 'n' for queue:
ããã¯ããã£ã¨æµãã¾ããããå®è¡ã¹ã¬ãããã¨ã«é çªãã¤ãããã¦ãã¾ãã
å
ã»ã©èª¬æããMuxerãå®è¡ã¹ã¬ããã®æ©è½ãæµç¨ãã¦ããã®ããåããããªååã«ãªã£ã¦ãã¾ããã
'weblogic.kernel.Default (self-tuning)'
ã¹ã¬ããã®èªåãã¥ã¼ãã³ã°ãããã¦ãããã¨ãæå³ãã¾ãã
ãã®æè¨ã¯åºæ¬çã«åºå®ãªã®ã§ãããããå°ãåãããããããæ¹æ³ãããã¾ãã12/18のWebLogic Server勉強会ã§èª¬æããäºå®ã§ãã®ã§ããããããã°åå ãã ããã
ãã¦ãèªåãã¥ã¼ãã³ã°ã«ã¤ãã¦ã§ãã
WLSã®å®è¡ã¹ã¬ããã¯åæã§ã¯å°ãªãã§ããªã¯ã¨ã¹ãæµéã«ãã£ã¦å¢ããããã«ãªã£ã¦ãã¾ããããã«ãã£ã¦ã¹ã¬ãããªã½ã¼ã¹ã®ç¡é§ããªããã¤ã¤ã管çè ã®è¨è¨ãè¨å®ä½æ¥ã®è² è·ãæå°éã«æãããã¨ãã§ãã¾ãã
åéãããããã¨ããã¨ãã¦ãã¯ã¼ã¯ããã¼ã¸ã£ã®è¨å®ã§ã¯æ大ã¹ã¬ããæ°å¶ç´ãªã©ãæå®ã§ãã¾ãããç©ççãªã¹ã¬ãããç´æ¥çã«å¢ãã訳ã§ã¯ããã¾ãããã©ã¡ããã¨ããã¨ã¯ã¼ã¯ããã¼ã¸ã£ã¯è«ççã«ã¹ã¬ããæ°ãå¶å¾¡ããæ©æ§ã¨èãã¦ãã ããã
å¤ãã®å ´åãèªåãã¥ã¼ãã³ã°ã«ä»»ãã¦ããã¦åé¡ãªãã®ã§ãããèµ·åç´å¾ã«ãã¼ã¹ããã©ãã£ãã¯ãäºæ³ããããããªã·ã¹ãã ã§ã¯ãç©ççãªã¹ã¬ããæ°ãäºã確ä¿ãã¦ããããå ´åãããã¾ãã
以åã¯ãWLST(WebLogic Scripting Tool)ãèµ·åãªãã·ã§ã³ã«ããè¨å®ã®ã¿ã§é ããã©ã¡ã¼ã¿çãªæ±ãã ã£ãã®ã§ãããWLS 12.1.2以éã§ã¯ç®¡çã³ã³ã½ã¼ã«ããæå®ã§ããããã«ãªã£ã¦ãã¾ãã
- ç°å¢âãµã¼ãã¼â{ãµã¼ãã¼å}âæ§æâãã¥ã¼ãã³ã°â詳細âèªåãã¥ã¼ãã³ã°ã¹ã¬ããæå°ãã¼ã«ãµã¤ãº
:
æ大ãã¼ã«ãµã¤ãºãæ§æã§ãã¾ãããä½ç¨ã®ãã¨ããªãéããããã©ã«ãã®400ããå¢ãããªãæ¹ãç¡é£ã§ããå¤ãããã¹ã¬ããã®ç¢ºä¿ã¯ãªã½ã¼ã¹ã®æ¯æ¸ãæããããã§ãããOSã®ã³ã³ããã¹ãã¹ã¤ããã®ãªã¼ãã¼ãããå¢å ãæ°ã«ãªãã¾ãã*5
ä½è«ã§ãããWLS 8.1ã¾ã§ã¯èªåãã¥ã¼ãã³ã°ã¯ãªããåã ã®å®è¡ãã¥ã¼ã«å¯¾ããã¹ã¬ãããã¼ã«ãæã£ã¦ãã¾ãããããã¯è©³ããæ¹ãªãåãããããæ¹æ³ã§ã¯ãã£ãã®ã§ãããä¸æããã¨éå°ãªè¨å®ã«ãªããã¡ã§ãããç¾å¨ã¯èªåãã¥ã¼ãã³ã°ãè¸ã¾ãã¦ãã¯ã¼ã¯ããã¼ã¸ã£ã§å¶å¾¡ããæ¹ãä¸è¬çãã¨æãã¾ãã*6
èªåãã¥ã¼ãã³ã°ã«ã¤ãã¦ã¯ã以ä¸ã®ããã¥ã¢ã«ãªã©ãã確èªã§ãã¾ãã
ããªãé·ããªãã¾ããããããã¾ã§ã§ä¸»è¦ãªé¨åã®èª¬æã¯çµããã§ãã
å¾ã¯è½ç©æ¾ãçãªæãã§ããããããããã°ãä»ãåããã ããã
mainã¹ã¬ãã
"main" #1 prio=5 os_prio=31 tid=0x00007fb085005000 nid=0xd03 in Object.wait() [0x000000010d8db000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:1130) - locked <0x00000007803aef20> (a weblogic.t3.srvr.T3Srvr) at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:538) at weblogic.Server.main(Server.java:65)
ãããè¦ãã¨ã¨ã³ããªãã¤ã³ãããweblogic.Serverã¯ã©ã¹ã®mainã¡ã½ããã«ãªã£ã¦ãããã¨ãåããã¾ããã*7
èµ·åã¹ã¯ãªãã({WLSãã¡ã¤ã³}/biné
ä¸ã®startWebLogic.shãsetDomainEnv.sh)ã§ãããã®æ§åã¯ç¢ºèªã§ãã¾ãã
# startWebLogic.shæç² if [ "${WLS_REDIRECT_LOG}" = "" ] ; then echo "Starting WLS with line:" echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}" ${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS} else echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}" ${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS} >"${WLS_REDIRECT_LOG}" 2>&1 fi
# setDomainEnv.shæç² SERVER_CLASS="weblogic.Server" export SERVER_CLASS
èµ·åã¹ã¯ãªããã®è©³ç´°ã¯ãWebLogic Serveråå¼·ä¼ã§è©±ããå 容ãè¨äºã«ãã¦ããã ãã¦ããã®ã§åç §ãã ããã*8
ã¹ã¿ãã¯ãã¬ã¼ã¹ã«è¦ãããt3ã¨ããã®ã¯ããã£ãã«ã®ã¨ããã§å°ãã ãåºã¦ãã¾ããããWLSã®ç¬èªãããã³ã«ã§ãã
ããã»ã©æèãããã¨ã¯ããã¾ãããã以ä¸ã®ããã¥ã¢ã«ã§ç¢ºèªã§ãã¾ãã
GCMonitorã¹ã¬ãã
"weblogic.GCMonitor" #41 daemon prio=5 os_prio=31 tid=0x00007fb088330000 nid=0x3707 in Object.wait() [0x000000012623c000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:142) - locked <0x0000000781a351d0> (a java.lang.ref.ReferenceQueue$Lock) at weblogic.platform.GCMonitorThread.waitForNotification(GCMonitorThread.java:86) at weblogic.platform.GCMonitorThread.run(GCMonitorThread.java:62)
WLSã«ã¯å¨æçã«ãã¼ãã®ç©ºãç¶æ³ãç£è¦ãããã°åºåããæ©è½ããããããããã§ç¨ãããã¦ããã¨æ³å®ããã¾ãã
RefereceQueueã®ä»çµã¿ãå©ç¨ãã¦ããã®ã§ãGCã¤ãã³ãã¨é¢é£ã¥ãã¦ãããã¨ãåããã¾ããã
WLSãµã¼ããã°({WLSãã¡ã¤ã³}/servers/{ãµã¼ãå}/logs/{ãµã¼ãå.log})ã¸ã®åºåä¾ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
####<2014/12/06 23æ30å13ç§ JST> <Info> <Health> <mymachine> <myserver> <weblogic.GCMonitor> <<anonymous>> <> <> <1417876213715> <BEA-310002> <ãµã¼ãã¼ã®ç·ã¡ã¢ãªã¼ã®70%ã空ãã¦ãã¾ãã> ####<2014/12/06 23æ33å13ç§ JST> <Info> <Health> <mymachine> <myserver> <weblogic.GCMonitor> <<anonymous>> <> <> <1417876393683> <BEA-310002> <ãµã¼ãã¼ã®ç·ã¡ã¢ãªã¼ã®33%ã空ãã¦ãã¾ãã>
Timeré¢é£ã¹ã¬ãã
"weblogic.timers.TimerThread" #22 daemon prio=9 os_prio=31 tid=0x00007fb084512800 nid=0x5f03 in Object.wait() [0x0000000126e66000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at weblogic.timers.internal.TimerThread.doWait(TimerThread.java:114) - locked <0x00000007805f69e8> (a java.lang.Object) at weblogic.timers.internal.TimerThread.access$000(TimerThread.java:22) at weblogic.timers.internal.TimerThread$Thread.run(TimerThread.java:290) "weblogic.time.TimeEventGenerator" #21 daemon prio=9 os_prio=31 tid=0x00007fb086097800 nid=0x5d03 in Object.wait() [0x0000000126d63000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:286) - locked <0x0000000780675500> (a weblogic.time.common.internal.TimeTable) at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:117) at java.lang.Thread.run(Thread.java:745)
"Timer-0" #11 daemon prio=5 os_prio=31 tid=0x00007fb085bc4800 nid=0x4b03 in Object.wait() [0x00000001254ee000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x000000078064bdf8> (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:502) at java.util.TimerThread.mainLoop(Timer.java:526) - locked <0x000000078064bdf8> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:505)
ä¸è¬çãªjava.util.Timerã使ããã¦ãã¾ãããWLSã®æ§ã
ãªã¿ã¹ã¯ãå®ç¾ããããã«ãæ¡å¼µãããã¿ã¤ãã¼ãµã¼ãã¹ãç¨æããã¦ãã¾ãã
ã¿ã¤ãã¼ã®ç¶æ³ã¯ç®¡çã³ã³ã½ã¼ã«ãã確èªã§ãã¾ãããããè¦ãã¨æ´ã«æ°ããªçºè¦ãããããããã¾ããã
- ç°å¢âãµã¼ãã¼â{ãµã¼ãã¼å}âç£è¦âã¿ã¤ãã¼
WLSç¬èªã®ã¿ã¤ãã¼ãµã¼ãã¹ã®ããã¥ã¢ã«ã¯ã以ä¸ãåç §ãã¦ãã ããã
çµè¾¼ã¿LDAPé¢é£ã¹ã¬ãã
"DoSManager" #33 daemon prio=6 os_prio=31 tid=0x00007fb0841e0800 nid=0x6303 waiting on condition [0x000000012749b000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at com.octetstring.vde.DoSManager.run(DoSManager.java:433) "VDE Transaction Processor Thread" #31 daemon prio=2 os_prio=31 tid=0x00007fb084b85800 nid=0x4d07 in Object.wait() [0x0000000127169000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:367) - locked <0x000000078097c808> (a com.octetstring.vde.backend.standard.TransactionProcessor) at com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:212)
WLSã«ã¯ã¦ã¼ã¶ã¼ã»ã°ã«ã¼ããªã©ã管çããããã«çµè¾¼ã¿LDAPãç¨æããã¦ãã¾ãã
管çãµã¼ãã¼ããã¹ã¿ã¨ãã¾ããããã¡ã¤ã³å
ã«ä»ã®ãµã¼ãã¼(管ç対象ãµã¼ãã¼)ãããå ´åã¯ãããããã«çµè¾¼ã¿LDAPã®ãªãã¸ããªãããã¬ããªã±ã¼ã·ã§ã³ããã¾ãããããã®ç®¡çã«ç¨ãããã¦ããã¨æ¨æ¸¬ããã¾ãã
çµè¾¼ã¿LDAPã®ããã¥ã¢ã«ã¯ã以ä¸ãåç §ãã¦ãã ããã
ãªããã¹ã¿ãã¯ãã¬ã¼ã¹ä¸ã®vdeã¯ãVirtual Directory Engineãæå³ããããã§ãã
æ°¸ç¶ã¹ãã¢é¢é£ã¹ã¬ãã
"Thread-17" #34 prio=5 os_prio=31 tid=0x00007fb0840eb800 nid=0x6107 waiting on condition [0x000000012726c000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x0000000780c018b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89) at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:724) at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1124) at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1116) at java.lang.Thread.run(Thread.java:745)
ã¹ã¬ããåãã¡ããã¨ä»ãã¦ããªã*9ã®ã§ãããã¹ã¿ãã¯ãã¬ã¼ã¹ããæ°¸ç¶ã¹ãã¢ã®æ¸è¾¼ã¿ã«å©ç¨ãããã¨æ³å®ããã¾ãã
æ示çã«ã«ã¹ã¿ã ã®ã¹ãã¢ãæ§æããªãå ´åã§ããããã©ã«ãã®æ°¸ç¶ã¹ãã¢ããããJTAã®ãã©ã³ã¶ã¯ã·ã§ã³ãã°ãªã©ã®ç®¡çã«ç¨ãããã¾ãã
æ°¸ç¶ã¹ãã¢ã®ããã¥ã¢ã«ã¯ã以ä¸ãåç §ãã¦ãã ããã
ä»ã«ã説æã§ãã¦ããªãç®æãå¤ã
ããã¨ã¯æãã¾ãããã²ã¨ã¾ãããã§çµäºã§ãã大å¤ãç²ããã¾ã§ããï¼*10
ã¾ã¨ã
- ã¹ã¬ãããã³ãããWLSã®ã¢ã¼ããã¯ãã£ã®ä¸ç«¯ãå£éè¦ããã¨ãã§ãã¾ãã
- ãªã¯ã¨ã¹ãå¦çã®è¦ã¨ãªãListen/Muxer/å®è¡ã¹ã¬ããã¯ç¥ã£ã¦ããã¨ããã§ãã
- ä»ã®è£½åã§ãã¹ã¬ãããã³ãã¨ã調ã¹ãã¨é¢ç½ãããããã¾ããã
ææ¥ã¯ [twitter:@btnrouge] ããã§ãã
*1:WLS 12.1.3ã¯Oracle JDK 8u20以éã§åä½ä¿è¨¼ãã¦ãã¾ãããFork/Join Frameworkããã©ã¬ã«ã¹ããªã¼ã ã¯ãµãã¼ããã¦ãã¾ãããã¾ããMac OS X 10.10ã¯è¨äºå·çæç¹ã§ã¯æ£å¼åä½ä¿è¨¼ã¯ããã¦ãã¾ããã
*2:æ£ç¢ºã«ã¯7u4以é
*3:æ£ç¢ºã«ã¯WLS 12.1.2以éã§NIOSocketMuxerãããã©ã«ãã«ãªãã¾ããã
*4:ãã¡ããåã ã®ã¹ã¿ãã¯ãã¬ã¼ã¹ã®å 容ããå¤å¥ã¯ã¤ãã®ã§ãããç£è¦ãªã©ã®è¦³ç¹ããã¯ãã¡ãã¡è¦ã¦ãããã¾ããã
*5:ã¹ã¬ãããå¤ãããã¹ã¬ãããã³ãã解æããã®ãé常ã«ã¤ããã§ãããé¡ãã ããåå¼ãã¦ãã ããâ¦
*6:WLS 8.1ã¾ã§ã®ã¹ã¬ããã¢ãã«ãå©ç¨ããããã«æ§æãããã¨ãã§ãã¾ããããã¾ã使ã£ã¦ã»ãããªãã®ã§èª¬æãå²æãã¾ãã
*7:ã¹ã¬ãããã³ããåå¾ããæç¹ã§ãweblogic.Serverã§ãããã¨ã¯åãã£ã¦ãã¾ããã
*8:ä»ã§ã¯å°ãå¤ããªã£ã¦ããã®ã§12/18ã®åå¼·ä¼ã§è£è¶³ããäºå®ã§ãã
*9:WLSã«éãã¾ããããã¹ã¬ããåã¯é©åã«ä»ããªãã¨åããã¥ããã®ã§ããã¡ãã¨ä»ãã¦ã»ããã§ããã
*10:æå¾ã¾ã§èªãã§ãããç¨æãªæ¹ãããã°ã§ããâ¦