Skip to content

View Threads

View Threads lists the JVM's live threads and what each is doing, inside the Help -> Monitor Server Resources dialog. It writes no file and pauses nothing, which makes it the right first move whenever a channel is running but not progressing.

When to use it

A channel is started but messages are not moving. The processor threads for that channel show what they are waiting on: a socket read, a database call, a web service response, or a lock. That is usually enough to identify the external system at fault without taking a dump at all.

Before taking a thread dump. A Thread Dump briefly pauses processing and produces a file someone has to read. If View Threads already answers the question, you have saved both.

Checking whether a thread pool is exhausted. If every processor thread is busy and the inbound queue is growing, the channel is not stuck. It is saturated, which is a different problem with a different fix. See Thread Pools.

Reading the list

Look for what threads are blocked on, not how many there are. A healthy busy system has plenty of active threads; an unhealthy one has threads that are all waiting on the same thing.

  • Several threads blocked on the same external host points at that system, not at QIE.
  • Threads waiting on a lock or mutex points at contention. In a cluster, check whether a shared cache mutex is involved, since an in-memory mutex does not coordinate across instances (see Shared Cache Settings).
  • Threads that are idle while a queue grows points at configuration rather than blockage.

In a cluster

The list is for the instance selected in the dialog. Confirm which node is affected from Global System Status before drawing conclusions. A healthy thread list only tells you that that node is healthy.