A long-running process invokes another long-running process synchronously.
Under heavy workload conditions, the thread monitor reports hung threads in
the SystemOut.log file (message WSVR0605W).
Reason
A long-running process that is called synchronously
can often cause hung threads. A long-running process usually spans several
transactions and needs a free thread to continue with its navigation. If all
of the available threads are involved in the navigation step of the parent
process that invokes the subprocess, the system becomes unresponsive. Because
of the lack of free threads, the subprocess cannot complete.
Resolution
A long-running process should always invoke
another long-running process asynchronously, even if the processes are separated
by another component. For example, if a long-running process invokes a mediation
and this mediation invokes another long-running process, then ensure that
the preferred interaction style of the mediation is asynchronous.