ablog

不器用で落着きのない技術者のメモ

WebLogic Server の実行スレッド以外のスレッドの数を調べてみた

WebLogic Server 12.1.2 の実行スレッド以外のスレッド数を調べてみた。
Hyper-Threading の ON/OFF を切換えて、WebLogic Server を起動してスレッドダンプを取得してみると、GC task thread と weblogic.socket.Muxer のスレッド数が変わる。
おそらくスレッド名に数字がついているものはCPU数などによって数が変わると思われる。


追記(2016/01/26):
id:yamadamn さんにGCスレッド数は -XX:ParallelGCThreads=threads で指定できると教えてもらいました。

-XX:ParallelGCThreads=threads
Young世代とOld世代の、パラレル・ガベージ・コレクションに使用されるスレッド数を設定します。デフォルト値は、JVMに使用可能なCPUの数によって異なります。
たとえばパラレルGCのスレッド数を2に設定するには、次のオプションを指定します。
-XX:ParallelGCThreads=2

java

スレッドダンプを取得する

$ jcmd
21046 sun.tools.jcmd.JCmd
20646 weblogic.Server
$ jcmd 20646 Thread.print > wls12120_thread_dump_2cpu_20160124.log

スレッド数を調べる

$ grep '^\"'  wls12120_thread_dump_2cpu_20160124.log|wc -l
33
$ grep '^\"'  wls12120_thread_dump_2cpu_20160124.log|grep -v weblogic.kernel.Default|wc -l
28
$ grep '^\"'  wls12120_thread_dump_2cpu_20160124.log|sort
"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f9bacd10800 nid=0x1095 in Object.wait() [0x00007f9ba3345000]
"Attach Listener" daemon prio=10 tid=0x00007f9b90023800 nid=0x10ce waiting on condition [0x0000000000000000]
"C2 CompilerThread0" daemon prio=10 tid=0x00007f9bac0a6000 nid=0x108f waiting on condition [0x0000000000000000]
"C2 CompilerThread1" daemon prio=10 tid=0x00007f9bac0a9000 nid=0x1090 waiting on condition [0x0000000000000000]
"DoSManager" daemon prio=10 tid=0x00007f9b78228000 nid=0x109f waiting on condition [0x00007f9ba2632000]
"DynamicListenThread[Default[1]]" daemon prio=10 tid=0x00007f9b6cb2f800 nid=0x10a6 runnable [0x00007f9ba1821000]
"DynamicListenThread[Default[2]]" daemon prio=10 tid=0x00007f9b6cb2a800 nid=0x10a3 runnable [0x00007f9ba1b24000]
"DynamicListenThread[Default[3]]" daemon prio=10 tid=0x00007f9b6cb2e000 nid=0x10a5 runnable [0x00007f9ba1922000]
"DynamicListenThread[Default]" daemon prio=10 tid=0x00007f9b6cb2c800 nid=0x10a4 runnable [0x00007f9ba1a23000]
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f9b6c127800 nid=0x1099 runnable [0x00007f9ba2c3b000]
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f9b6c129800 nid=0x109a runnable [0x00007f9ba2b3a000]
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f9b6c130000 nid=0x109b runnable [0x00007f9ba2a39000]
"Finalizer" daemon prio=10 tid=0x00007f9bac079000 nid=0x108d in Object.wait() [0x00007f9bb052a000]
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f9bac020000 nid=0x1089 runnable 
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f9bac021800 nid=0x108a runnable 
"main" prio=10 tid=0x00007f9bac00a000 nid=0x1088 in Object.wait() [0x00007f9bb3894000]
"Reference Handler" daemon prio=10 tid=0x00007f9bac077000 nid=0x108c in Object.wait() [0x00007f9bb062b000]
"Service Thread" daemon prio=10 tid=0x00007f9bac0ab800 nid=0x1091 runnable [0x0000000000000000]
"Signal Dispatcher" daemon prio=10 tid=0x00007f9bac0a4000 nid=0x108e runnable [0x0000000000000000]
"[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x000000000162d000 nid=0x109c in Object.wait() [0x00007f9ba2938000]
"[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x000000000162e800 nid=0x10a1 in Object.wait() [0x00007f9ba1d26000]
"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f9bace16000 nid=0x10a7 in Object.wait() [0x00007f9ba14fe000]
"[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f9bace18000 nid=0x10a8 in Object.wait() [0x00007f9ba13fd000]
"Thread-11" prio=10 tid=0x00007f9b6c5c9000 nid=0x10a0 waiting on condition [0x00007f9ba2736000]
"Thread-7" prio=10 tid=0x00007f9b6c06e800 nid=0x1098 waiting on condition [0x00007f9ba2d3c000]
"Timer-0" daemon prio=10 tid=0x00007f9bac831000 nid=0x1093 in Object.wait() [0x00007f9ba376e000]
"Timer-1" daemon prio=10 tid=0x00007f9bacd0d000 nid=0x1094 in Object.wait() [0x00007f9ba3446000]
"VDE Transaction Processor Thread" daemon prio=10 tid=0x00007f9b6c24a000 nid=0x109d in Object.wait() [0x00007f9ba2837000]
"VM Periodic Task Thread" prio=10 tid=0x00007f9bac0b6800 nid=0x1092 waiting on condition 
"VM Thread" prio=10 tid=0x00007f9bac073000 nid=0x108b runnable 
"weblogic.GCMonitor" daemon prio=10 tid=0x00007f9b6cb26800 nid=0x10a2 in Object.wait() [0x00007f9ba1c25000]
"weblogic.timers.TimerThread" daemon prio=10 tid=0x00007f9bacd2e000 nid=0x1097 in Object.wait() [0x00007f9ba3042000]
"weblogic.time.TimeEventGenerator" daemon prio=10 tid=0x00007f9bacd21800 nid=0x1096 in Object.wait() [0x00007f9ba3244000]
$ grep '^\"' wls12120_thread_dump_4cpu_20160124.log|wc -l
36
$ grep '^\"' wls12120_thread_dump_4cpu_20160124.log|grep -v weblogic.kernel.Default|wc -l
31
$ grep '^\"' wls12120_thread_dump_4cpu_20160124.log|sort
"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f693d415800 nid=0x50cd in Object.wait() [0x00007f692a922000]
"Attach Listener" daemon prio=10 tid=0x00007f6910001000 nid=0x5235 waiting on condition [0x0000000000000000]
"C2 CompilerThread0" daemon prio=10 tid=0x00007f693c0aa000 nid=0x50b0 waiting on condition [0x0000000000000000]
"C2 CompilerThread1" daemon prio=10 tid=0x00007f693c0ad000 nid=0x50b1 waiting on condition [0x0000000000000000]
"DoSManager" daemon prio=10 tid=0x00007f68b8001800 nid=0x50d8 waiting on condition [0x00007f6929c12000]
"DynamicListenThread[Default[1]]" daemon prio=10 tid=0x00007f68e09fa800 nid=0x50e2 runnable [0x00007f6928d09000]
"DynamicListenThread[Default[2]]" daemon prio=10 tid=0x00007f68e09ed800 nid=0x50df runnable [0x00007f692900c000]
"DynamicListenThread[Default[3]]" daemon prio=10 tid=0x00007f68e09f8800 nid=0x50e1 runnable [0x00007f6928e0a000]
"DynamicListenThread[Default]" daemon prio=10 tid=0x00007f68e09ee800 nid=0x50e0 runnable [0x00007f6928f0b000]
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00b7800 nid=0x50d1 runnable [0x00007f692a319000]
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00b4800 nid=0x50d2 runnable [0x00007f692a218000]
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00be000 nid=0x50d3 runnable [0x00007f692a117000]
"ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00c2000 nid=0x50d4 runnable [0x00007f692a016000]
"Finalizer" daemon prio=10 tid=0x00007f693c07d000 nid=0x50ae in Object.wait() [0x00007f6930b4d000]
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f693c01f800 nid=0x50a8 runnable 
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f693c021800 nid=0x50a9 runnable 
"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f693c023000 nid=0x50aa runnable 
"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f693c025000 nid=0x50ab runnable 
"main" prio=10 tid=0x00007f693c009800 nid=0x50a7 in Object.wait() [0x00007f6940d31000]
"Reference Handler" daemon prio=10 tid=0x00007f693c07b000 nid=0x50ad in Object.wait() [0x00007f6930c4e000]
"Service Thread" daemon prio=10 tid=0x00007f693c0af800 nid=0x50b2 runnable [0x0000000000000000]
"Signal Dispatcher" daemon prio=10 tid=0x00007f693c0a8000 nid=0x50af runnable [0x0000000000000000]
"[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68d8006800 nid=0x50d5 in Object.wait() [0x00007f6929f15000]
"[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68d8008000 nid=0x50dd in Object.wait() [0x00007f692930f000]
"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68c02da000 nid=0x50e3 in Object.wait() [0x00007f692897b000]
"[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f693d282000 nid=0x50e4 in Object.wait() [0x00007f692887a000]
"Thread-12" prio=10 tid=0x00007f68e057e800 nid=0x50dc waiting on condition [0x00007f6929d13000]
"Thread-8" prio=10 tid=0x00007f68e006a000 nid=0x50d0 waiting on condition [0x00007f692a41a000]
"Timer-0" daemon prio=10 tid=0x00007f693c91e800 nid=0x50b4 in Object.wait() [0x00007f692ad2c000]
"Timer-1" daemon prio=10 tid=0x00007f693d413800 nid=0x50cc in Object.wait() [0x00007f692aa23000]
"VDE Transaction Processor Thread" daemon prio=10 tid=0x00007f68e01cf800 nid=0x50d6 in Object.wait() [0x00007f6929e14000]
"VM Periodic Task Thread" prio=10 tid=0x00007f693c0ba000 nid=0x50b3 waiting on condition 
"VM Thread" prio=10 tid=0x00007f693c076800 nid=0x50ac runnable 
"weblogic.GCMonitor" daemon prio=10 tid=0x00007f68e09f5800 nid=0x50de in Object.wait() [0x00007f692910d000]
"weblogic.timers.TimerThread" daemon prio=10 tid=0x00007f693d435000 nid=0x50cf in Object.wait() [0x00007f692a61f000]
"weblogic.time.TimeEventGenerator" daemon prio=10 tid=0x00007f693d421000 nid=0x50ce in Object.wait() [0x00007f692a821000]

補足

WebLogic Server インストール手順
$ su - oracle
$ cd /opt/oracle
$ unzip wls1212_devzip_update1.zip
$ cd wls12120
$ export JAVA_HOME=/usr/lib/jvm/java-openjdk
$ export MW_HOME=/opt/oracle/wls12120
$ . ./configure.sh
Do you want to configure a new domain?  [y/n]? y
Enter username to boot WebLogic server:weblogic
Enter password to boot WebLogic server:
For confirmation, please re-enter password required to boot WebLogic server:

...

<Jan 24, 2016 8:59:42 AM JST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.> 
<Jan 24, 2016 8:59:42 AM JST> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> 
起動・停止手順
$ cd /opt/oracle/wls12120/user_projects/domains/mydomain/bin
$ ./startWebLogic.sh &
$ ./stopWebLogic.sh
メモ

MW_HOME/wlserver/server/lib/wlsafclient.jar の weblogic/Server.class -> weblogic/t3/srvr/*.class あたりがスレッドの起動に関わっているぽい。

追記(2016/01/26):

id:yamadamn さんに教えていただいたので改めてちゃんと確認したところ、その通りだった。

$ cd /opt/oracle/wls12120
$ find . -name '*.jar'|while read LINE
do
export LINE
jar tvf $LINE|perl -nle 'print $ENV{LINE} . $_'
done > weblogic_classes.txt
$ head -3 weblogic_classes.txt 
./oracle_common/modules/jersey-server-1.17.1.jar 15634 Thu Feb 28 12:47:06 JST 2013 META-INF/MANIFEST.MF
./oracle_common/modules/jersey-server-1.17.1.jar     0 Thu Feb 28 12:47:06 JST 2013 META-INF/
./oracle_common/modules/jersey-server-1.17.1.jar     7 Wed Feb 27 20:17:26 JST 2013 META-INF/jersey-module-version
$ grep weblogic/Server.class weblogic_classes.txt
./wlserver/modules/features/weblogic.server.merged.jar★  9849 Fri Sep 19 16:46:54 JST 2014 weblogic/Server.class
./wlserver/server/lib/wlsaft3client.jar  9849 Fri Sep 19 16:59:40 JST 2014 weblogic/Server.class

表2-1 WebLogic Serverクライアントの種類と機能

クライアント 種類 言語 プロトコル クライアント・クラス要件 主な機能
JMS SAFクライアント(WebLogic Server 9.2で導入) WMI Java IIOP wlsafclient.jar
wljmsclient.jar
wlclient.jar
JDK 1.6以降
メッセージをクライアント上でローカルに格納し、クライアントの接続時にサーバー側のJMS宛先に転送します。SSLをサポートします。第7章「JMS SAFクライアントによる確実なメッセージ送信」を参照してください。T3クライアントの選択肢のうち、高速なものを使用することを検討してください。
スタンドアロン・クライアントの概要

さらに、

CAT(Classloader Analysis Tool)で調べることができるとのことなので、WebLogic を起動して、http://localhost:7001/wls-cat/ にアクセスし、インストール時に設定したidとパスワードを入力してログインして、

  • 左ペインで bea_wls_internal -> bea_wls_internal.war を選択
  • View: detailed を選択
  • Actions: Classloader Tree を選択
  • Type: sun.misc.Launcher$AppClassLoader -> HashCode のリンクを選択
  • Resource to analyze に "weblogic.Server" を入力して "Analyze Resource" を押下

Resource: weblogic.Server

Checksum: 74c69d6ed5e3047b088315a4be6254ea
Load Location: jar:file:/opt/oracle/wls12120/wlserver/modules/features/weblogic.server.merged.jar!/weblogic/Server.class
Classloader Type: sun.misc.Launcher$AppClassLoader
Classloader Hash Code: 537068416
Classloader Search Order: 537068416 ->537068416
Alternative Locations: None

Source:
public final class weblogic.Server {
    public static final String WEBLOGIC_INSTRUMENTATION_PROPERTY
    public static final String DIAGNOSTIC_PRE_PROCESSOR_CLASS
    public static final String WEBLOGIC_INSTRUMENTATION_SERVER_SCOPE
    public static final String CLASSLOADER_PREPROCESSOR
    public void weblogic.Server();
    public static void main(String[]);
    public static boolean isRedefineClassesSupported();
    public String toString();
    public static String getUsage();
}

Load Location で weblogic/Server.class は /opt/oracle/wls12120/wlserver/modules/features/weblogic.server.merged.jar から load されていることがわかる。

スレッドダンプ全量
$ cat wls12120_thread_dump_4cpu_20160124.log
20646:
2016-01-24 09:06:27
Full thread dump OpenJDK 64-Bit Server VM (24.79-b02 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007f6910001000 nid=0x5235 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f693d282000 nid=0x50e4 in Object.wait() [0x00007f692887a000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fe868358> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000fe868358> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68c02da000 nid=0x50e3 in Object.wait() [0x00007f692897b000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fe868e80> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000fe868e80> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"DynamicListenThread[Default[1]]" daemon prio=10 tid=0x00007f68e09fa800 nid=0x50e2 runnable [0x00007f6928d09000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
	- locked <0x00000000ff072158> (a java.lang.Object)
	at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
	at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
	at java.lang.Thread.run(Thread.java:745)

"DynamicListenThread[Default[3]]" daemon prio=10 tid=0x00007f68e09f8800 nid=0x50e1 runnable [0x00007f6928e0a000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
	- locked <0x00000000ff0727d8> (a java.lang.Object)
	at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
	at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
	at java.lang.Thread.run(Thread.java:745)

"DynamicListenThread[Default]" daemon prio=10 tid=0x00007f68e09ee800 nid=0x50e0 runnable [0x00007f6928f0b000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
	- locked <0x00000000ff073048> (a java.lang.Object)
	at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
	at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
	at java.lang.Thread.run(Thread.java:745)

"DynamicListenThread[Default[2]]" daemon prio=10 tid=0x00007f68e09ed800 nid=0x50df runnable [0x00007f692900c000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
	- locked <0x00000000ff072bf0> (a java.lang.Object)
	at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
	at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
	at java.lang.Thread.run(Thread.java:745)

"weblogic.GCMonitor" daemon prio=10 tid=0x00007f68e09f5800 nid=0x50de in Object.wait() [0x00007f692910d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fed60758> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
	- locked <0x00000000fed60758> (a java.lang.ref.ReferenceQueue$Lock)
	at weblogic.platform.GCMonitorThread.waitForNotification(GCMonitorThread.java:88)
	at weblogic.platform.GCMonitorThread.run(GCMonitorThread.java:64)

"[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68d8008000 nid=0x50dd in Object.wait() [0x00007f692930f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fed113a0> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000fed113a0> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"Thread-12" prio=10 tid=0x00007f68e057e800 nid=0x50dc waiting on condition [0x00007f6929d13000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000000fe868210> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
	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:678)
	at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1078)
	at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1070)
	at java.lang.Thread.run(Thread.java:745)

"DoSManager" daemon prio=10 tid=0x00007f68b8001800 nid=0x50d8 waiting on condition [0x00007f6929c12000]
   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" daemon prio=10 tid=0x00007f68e01cf800 nid=0x50d6 in Object.wait() [0x00007f6929e14000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fee021b0> (a com.octetstring.vde.backend.standard.TransactionProcessor)
	at java.lang.Object.wait(Object.java:503)
	at com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:367)
	- locked <0x00000000fee021b0> (a com.octetstring.vde.backend.standard.TransactionProcessor)
	at com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:212)

"[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68d8006800 nid=0x50d5 in Object.wait() [0x00007f6929f15000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fed12038> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000fed12038> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00c2000 nid=0x50d4 runnable [0x00007f692a016000]
   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:87)
	- locked <0x00000000fee29028> (a sun.nio.ch.Util$2)
	- locked <0x00000000fee29018> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00000000fee28ef0> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
	at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:549)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:478)
	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'" daemon prio=10 tid=0x00007f68e00be000 nid=0x50d3 runnable [0x00007f692a117000]
   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:87)
	- locked <0x00000000fee28ce8> (a sun.nio.ch.Util$2)
	- locked <0x00000000fee28cd8> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00000000fee28ba0> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
	at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:549)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:478)
	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'" daemon prio=10 tid=0x00007f68e00b4800 nid=0x50d2 runnable [0x00007f692a218000]
   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:87)
	- locked <0x00000000fee29368> (a sun.nio.ch.Util$2)
	- locked <0x00000000fee29358> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00000000fee29230> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
	at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:549)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:478)
	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'" daemon prio=10 tid=0x00007f68e00b7800 nid=0x50d1 runnable [0x00007f692a319000]
   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:87)
	- locked <0x00000000fee296a8> (a sun.nio.ch.Util$2)
	- locked <0x00000000fee29698> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00000000fee29570> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
	at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:549)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:478)
	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-8" prio=10 tid=0x00007f68e006a000 nid=0x50d0 waiting on condition [0x00007f692a41a000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000000c121fce8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
	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:678)
	at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1078)
	at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1070)
	at java.lang.Thread.run(Thread.java:745)

"weblogic.timers.TimerThread" daemon prio=10 tid=0x00007f693d435000 nid=0x50cf in Object.wait() [0x00007f692a61f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fee2a1d8> (a java.lang.Object)
	at weblogic.timers.internal.TimerThread.doWait(TimerThread.java:114)
	- locked <0x00000000fee2a1d8> (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" daemon prio=10 tid=0x00007f693d421000 nid=0x50ce in Object.wait() [0x00007f692a821000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c11e82b0> (a weblogic.time.common.internal.TimeTable)
	at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:286)
	- locked <0x00000000c11e82b0> (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)'" daemon prio=10 tid=0x00007f693d415800 nid=0x50cd in Object.wait() [0x00007f692a922000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c1220558> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000c1220558> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"Timer-1" daemon prio=10 tid=0x00007f693d413800 nid=0x50cc in Object.wait() [0x00007f692aa23000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fee2a3d8> (a java.util.TaskQueue)
	at java.util.TimerThread.mainLoop(Timer.java:552)
	- locked <0x00000000fee2a3d8> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

"Timer-0" daemon prio=10 tid=0x00007f693c91e800 nid=0x50b4 in Object.wait() [0x00007f692ad2c000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fee2a7f0> (a java.util.TaskQueue)
	at java.lang.Object.wait(Object.java:503)
	at java.util.TimerThread.mainLoop(Timer.java:526)
	- locked <0x00000000fee2a7f0> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

"Service Thread" daemon prio=10 tid=0x00007f693c0af800 nid=0x50b2 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x00007f693c0ad000 nid=0x50b1 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x00007f693c0aa000 nid=0x50b0 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007f693c0a8000 nid=0x50af runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007f693c07d000 nid=0x50ae in Object.wait() [0x00007f6930b4d000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c18f2a18> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
	- locked <0x00000000c18f2a18> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" daemon prio=10 tid=0x00007f693c07b000 nid=0x50ad in Object.wait() [0x00007f6930c4e000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c18f27e0> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:503)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
	- locked <0x00000000c18f27e0> (a java.lang.ref.Reference$Lock)

"main" prio=10 tid=0x00007f693c009800 nid=0x50a7 in Object.wait() [0x00007f6940d31000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c171c2b8> (a weblogic.t3.srvr.T3Srvr)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:995)
	- locked <0x00000000c171c2b8> (a weblogic.t3.srvr.T3Srvr)
	at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:492)
	at weblogic.Server.main(Server.java:74)

"VM Thread" prio=10 tid=0x00007f693c076800 nid=0x50ac runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f693c01f800 nid=0x50a8 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f693c021800 nid=0x50a9 runnable 

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f693c023000 nid=0x50aa runnable 

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f693c025000 nid=0x50ab runnable 

"VM Periodic Task Thread" prio=10 tid=0x00007f693c0ba000 nid=0x50b3 waiting on condition 

JNI global references: 230

参考

JDK 5.0から採用されているパラレルGC用の処理スレッドです。このスレッドは、CPUコアと同じ数だけ生成されます。
詳細は、以下のマニュアルを参照してください。

Interstage Application Serverにおいて、Javaのフルスレッドダンプに現われる"GC task thread"とは、どのようなスレッドですか?