Thread Dump

欢迎使用Apptalking,本文档将帮助您快速理解产品的核心功能,如果在使用过程当中遇到了问题,欢迎通过邮件的方式进行问答。

什么是Thread Dump?

Apptalking 中的 Thread Dump 功能和JVM中的Jstack命令类似,都可以dump出JVM中线程信息,方法堆栈、死锁等信息。但是Apptalking的Thread Dump 可以直接在控制台远程执行,无需登录到服务器上操作。Apptalking Agent 会自动上传Thread Dump 文件到Controller。Apptalking 有两种执行Thread Dump方式:1、Apptalking 告警 触发 Thread Dump 动作 , 2、控制台手动执行。

Thread Dump 动作配置

  1. 创建Thread Dump 动作
  • 名称:动作的名称
  • 执行次数:连续执行Thread Dump的次数,多个Thread Dump 内容对照查看才更有意义。
  • 时间间隔:两次采集Thread Dump的时间间隔。
  • 邮件验证:是否进行邮件验证,如果开启邮件验证。Apptalking 需要触发 Thread Dump的时候会事先发送确认邮件,收到 邮件的确认后才触发Thread Dump。
  • 邮件地址:确认邮件的发送地址。

Apptalking

  1. Thread Dump 的执行策略。
    在创建告警策略的时候,如果使用Thread Dump 动作,可以配置Thread Dump 触发范围。如果应用下如果有100个节点,一般情况下是不需要全部触发Thread Dump动作的,可以进行采样触发。
    Apptalking 支持 百分比和指定数量采样触发,也可以指定特定的节点触发。

Apptalking

手动执行 Thread Dump

可以在Apptalking 控制台手动执行 Thread Dump

Apptalking

Thread Dump 打包文件

多次执行的 Thread Dump 内容会在同一个zip打包文件中上传上来。

Apptalking

Thread Dump 内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410

=============================Java stack traces ===================================

"http-nio-8081-exec-2" Id=52 in WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@73181ab2
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"http-nio-8081-exec-1" Id=51 in WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@73181ab2
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"ajp-nio-8019-Acceptor-0" Id=49 in RUNNABLE (running in native)
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source)
at sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source)
- locked java.lang.Object@510414cb
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:693)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"ajp-nio-8019-ClientPoller-1" Id=48 in RUNNABLE (running in native)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
- locked sun.nio.ch.Util$2@40723a83
- locked java.util.Collections$UnmodifiableSet@1ea96fe2
- locked sun.nio.ch.WindowsSelectorImpl@2dd73b0f
at sun.nio.ch.SelectorImpl.select(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1052)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"ajp-nio-8019-ClientPoller-0" Id=47 in RUNNABLE (running in native)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
- locked sun.nio.ch.Util$2@5c84d032
- locked java.util.Collections$UnmodifiableSet@df34f03
- locked sun.nio.ch.WindowsSelectorImpl@58f0e720
at sun.nio.ch.SelectorImpl.select(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1052)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"http-nio-8081-Acceptor-0" Id=46 in RUNNABLE (running in native)
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source)
at sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source)
- locked java.lang.Object@4c6bb072
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:693)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"http-nio-8081-ClientPoller-1" Id=45 in RUNNABLE (running in native)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
- locked sun.nio.ch.Util$2@3694fc8d
- locked java.util.Collections$UnmodifiableSet@2188360b
- locked sun.nio.ch.WindowsSelectorImpl@7e1e1cfd
at sun.nio.ch.SelectorImpl.select(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1052)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"http-nio-8081-ClientPoller-0" Id=44 in RUNNABLE (running in native)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
- locked sun.nio.ch.Util$2@6fe7db6c
- locked java.util.Collections$UnmodifiableSet@7e863289
- locked sun.nio.ch.WindowsSelectorImpl@1ede6b3c
at sun.nio.ch.SelectorImpl.select(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1052)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"ContainerBackgroundProcessor[StandardEngine[Catalina]]" Id=43 in RUNNABLE
at java.util.zip.ZipFile.getEntryCrc(Native Method)
at java.util.zip.ZipFile.getZipEntry(Unknown Source)
at java.util.zip.ZipFile.getEntry(Unknown Source)
- locked java.util.jar.JarFile@67646e19
at java.util.jar.JarFile.getEntry(Unknown Source)
at java.util.jar.JarFile.getJarEntry(Unknown Source)
at org.apache.catalina.webresources.JarResourceSet.getArchiveEntry(JarResourceSet.java:120)
at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:270)
at org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:281)
at org.apache.catalina.webresources.Cache.getResource(Cache.java:63)
at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:216)
at org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:225)
at org.apache.catalina.loader.WebappClassLoaderBase.modified(WebappClassLoaderBase.java:706)
at org.apache.catalina.loader.WebappLoader.modified(WebappLoader.java:342)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:286)
at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5629)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1376)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1380)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1380)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1348)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"RMI RenewClean-[192.168.199.107:55769]" Id=41 in TIMED_WAITING on lock=java.lang.ref.ReferenceQueue$Lock@10a965ee
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(Unknown Source)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"RMI Scheduler(0)" Id=40 in TIMED_WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@41c4f02c
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"RMI Reaper" Id=38 in WAITING on lock=java.lang.ref.ReferenceQueue$Lock@e9980e7
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.rmi.transport.ObjectTable$Reaper.run(Unknown Source)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"RMI TCP Accept-0" Id=37 in RUNNABLE (running in native)
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked java.net.SocksSocketImpl@63f39d83
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown Source)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"RMI TCP Accept-8088" Id=36 in RUNNABLE (running in native)
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked java.net.SocksSocketImpl@38ae0206
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown Source)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"NioBlockingSelector.BlockPoller-2" Id=33 in RUNNABLE (running in native)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
- locked sun.nio.ch.Util$2@5e0dc0af
- locked java.util.Collections$UnmodifiableSet@1cd1ed31
- locked sun.nio.ch.WindowsSelectorImpl@633174ad
at sun.nio.ch.SelectorImpl.select(Unknown Source)
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:342)

Locked synchronizers: count = 0

"NioBlockingSelector.BlockPoller-1" Id=32 in RUNNABLE
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
- locked sun.nio.ch.Util$2@2b47e4ff
- locked java.util.Collections$UnmodifiableSet@1b7f5180
- locked sun.nio.ch.WindowsSelectorImpl@8548fbb
at sun.nio.ch.SelectorImpl.select(Unknown Source)
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:342)

Locked synchronizers: count = 0

"GC Daemon" Id=31 in TIMED_WAITING on lock=sun.misc.GC$LatencyLock@60a81600
at java.lang.Object.wait(Native Method)
at sun.misc.GC$Daemon.run(Unknown Source)

Locked synchronizers: count = 0

"AD Thread-BCI Transform Processor4" Id=30 in WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74dc76f6
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:523)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:477)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor.getTask(ADThreadPoolExecutor.java:160)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:386)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"AD Thread-BCI Transform Processor3" Id=29 in WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74dc76f6
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:523)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:477)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor.getTask(ADThreadPoolExecutor.java:160)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:386)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"AD Thread-BCI Transform Processor2" Id=28 in WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74dc76f6
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:523)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:477)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor.getTask(ADThreadPoolExecutor.java:160)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:386)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"AD Thread-BCI Transform Processor1" Id=27 in WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74dc76f6
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:523)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:477)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor.getTask(ADThreadPoolExecutor.java:160)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:386)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"AD Thread-BCI Transform Processor0" Id=26 in WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74dc76f6
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:523)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:477)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor.getTask(ADThreadPoolExecutor.java:160)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:386)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"AD Thread-Hotspot Processor0" Id=20 in TIMED_WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15cecabc
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:523)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:477)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor.getTask(ADThreadPoolExecutor.java:160)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:386)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"AD Thread-Metric Reporter0" Id=18 in TIMED_WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@39cbb6e9
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:523)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$DelayedWorkQueue.take(ADScheduledThreadPoolExecutor.java:477)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor.getTask(ADThreadPoolExecutor.java:160)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:386)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 0

"AD Thread-Config Poller" Id=17 in TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at com.apptalking.util.org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:105)

Locked synchronizers: count = 0

"AD Thread Pool-Global1" Id=16 in RUNNABLE
at sun.management.ThreadImpl.dumpThreads0(Native Method)
at sun.management.ThreadImpl.dumpAllThreads(Unknown Source)
at com.apptalking.ee.agent.appagent.services.AsyncThreadDumpTaskHandler.takeThreadDumpSample(AsyncThreadDumpTaskHandler.java:41)
at com.apptalking.ee.agent.appagent.services.logmonitoring.ThreadDumpSamplerTask.run(ThreadDumpSamplerTask.java:62)
at com.apptalking.ee.util.javaspecific.scheduler.AgentScheduledExecutorServiceImpl$SafeRunnable.run(AgentScheduledExecutorServiceImpl.java:125)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADFutureTask$Sync.innerRunAndReset(ADFutureTask.java:279)
at com.apptalking.ee.util.javaspecific.scheduler.ADFutureTask.runAndReset(ADFutureTask.java:95)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$ADScheduledFutureTask.runPeriodic(ADScheduledThreadPoolExecutor.java:129)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$ADScheduledFutureTask.run(ADScheduledThreadPoolExecutor.java:157)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.runTask(ADThreadPoolExecutor.java:355)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:388)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 1
- java.util.concurrent.locks.ReentrantLock$NonfairSync@1973bfc6

"AD Thread Pool-Global0" Id=15 in WAITING on lock=com.apptalking.ee.agent.appagent.services.bciengine.BciEngineService@6df7a18f
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at com.apptalking.ee.agent.appagent.services.bciengine.BciEngineService.tryShutdownBCITransformScheduledExecutor(BciEngineService.java:1545)
at com.apptalking.ee.agent.appagent.services.bciengine.ShutdownBCITransformScheduledExecutorTask.run(ShutdownBCITransformScheduledExecutorTask.java:22)
at com.apptalking.ee.util.javaspecific.scheduler.AgentScheduledExecutorServiceImpl$SafeRunnable.run(AgentScheduledExecutorServiceImpl.java:125)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at com.apptalking.ee.util.javaspecific.scheduler.ADFutureTask$Sync.innerRun(ADFutureTask.java:259)
at com.apptalking.ee.util.javaspecific.scheduler.ADFutureTask.run(ADFutureTask.java:90)
at com.apptalking.ee.util.javaspecific.scheduler.ADScheduledThreadPoolExecutor$ADScheduledFutureTask.run(ADScheduledThreadPoolExecutor.java:159)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.runTask(ADThreadPoolExecutor.java:355)
at com.apptalking.ee.util.javaspecific.scheduler.ADThreadPoolExecutor$Worker.run(ADThreadPoolExecutor.java:388)
at java.lang.Thread.null(Unknown Source)

Locked synchronizers: count = 1
- java.util.concurrent.locks.ReentrantLock$NonfairSync@e0f01d8

"Thread-1" Id=7 in TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at com.apptalking.util.org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:105)

Locked synchronizers: count = 0

"Attach Listener" Id=5 in RUNNABLE

Locked synchronizers: count = 0

"Signal Dispatcher" Id=4 in RUNNABLE

Locked synchronizers: count = 0

"Finalizer" Id=3 in WAITING on lock=java.lang.ref.ReferenceQueue$Lock@9ef3e26
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

Locked synchronizers: count = 0

"Reference Handler" Id=2 in WAITING on lock=java.lang.ref.Reference$Lock@d662d52
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)

Locked synchronizers: count = 0

"main" Id=1 in RUNNABLE (running in native)
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked java.net.SocksSocketImpl@7b91fce7
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:464)
at org.apache.catalina.startup.Catalina.await(Catalina.java:717)
at org.apache.catalina.startup.Catalina.start(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

Locked synchronizers: count = 0