We are running a Java-Spring webapp under Tomcat.  Among other things, the webapp sends notification messages to various other services using Sonic MQ.  We are analyzing our open threads in order to optimize our shutdown process.  We are seeing this Sonic process frequently (see below), but is not obvious how/if this is associated with our code - so, the question is - why is this DiagnosticsManager thread staying around, and is there something we can do to manage it?  Any insight would be most appreciated.

Here is the associated stack trace:

Thread 32590: (state = BLOCKED)

- java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be imprecise)

- com.sonicsw.sdf.impl.DiagnosticsManager.doSleep(int) @bci=6 (Interpreted frame)

- com.sonicsw.sdf.impl.DiagnosticsManager.access$300(int) @bci=1 (Interpreted frame)

- com.sonicsw.sdf.impl.DiagnosticsManager$1.run() @bci=103 (Interpreted frame)

--

Versions:

Sonic: 7.6

Java: 1.6

Spring: 3.1.1

Tomcat: 6.0.35

Linux: Red Hat 3.4.6 (very old, not sure we use this in production)

Thanks,

Aziz