Dispatcher waits

There are five reasons why CICS® dispatcher might cause tasks to wait, and the resource names or resource type associated with these are:

Resource name JVM_POOL

When a task first needs a J8 or J9 mode open TCB, the dispatcher domain attempts to find a free TCB from the JVM pool. If there is not a free J8 or J9 mode TCB, and the number of open TCBs in the JVM pool is less than MAXJVMTCBS, CICS attaches a new TCB, and allocates this to the requesting task.

However, if the number of J8 and J9 TCBs in the pool is at the limit set by MAXJVMTCBS, dispatcher places the requesting task onto a queue and the task is suspended (using suspend token AWAITING_OPEN_TCB_TOKEN in the DS task block). When an open TCB becomes free, or the MAXJVMTCBS limit is raised, the task at the front of the queue is resumed, and the open TCB allocation process is retried.

Resource name OPENPOOL

When a task first needs an L8 mode open TCB, the dispatcher domain attempts to find a free TCB of this mode with the correct subspace attributes. If there is not a free L8 mode TCB associated with a matching subspace, CICS:

However, if neither of these options is available, dispatcher places the requesting task onto a queue and the task is suspended (using suspend token AWAITING_OPENPOOL_TOKEN in the DS task block). When an open TCB becomes free, or the MAXOPENTCBS limit is raised, the task at the front of the queue is resumed, and the open TCB allocation process is retried.

Resource name OPEN_DEL

If your task is waiting on a resource name of OPEN_DEL, dispatcher is detaching an unsuitable TCB (stealing) so that it can allocate a new one, and your task is waiting for the old TCB to terminate so that dispatcher can attach a new one.

Your task needs an open TCB, but no suitable TCB is available, and a new TCB cannot be attached because the system is constrained by the MAXOPENTCBS limit. In this situation, CICS selects a currently idle TCB for termination, to allow the task to attach a TCB of the required type. However, the attach cannot proceed until the deleted TCB's termination is complete, otherwise the number of open TCBs in the L8 pool would temporarily exceed MAXOPENTCBS.

Resource type DSTSKDEF

A task waiting on the resource type DSTSKDEF is not suspended. Task attach has added the new task to the dispatcher chain and it is waiting for first dispatch. The task could be waiting for a dump to complete, for example.

Resource type SOSMVS

The number of open TCBs (J8 or J9 mode TCB) in the JVM pool is constrained by the MAXJVMTCBS system initialization parameter. If you set a MAXJVMTCBS limit that is too high, CICS might attempt to create too many JVMs for the available MVS storage, resulting in an MVS storage constraint.

CICS has a storage monitor for MVS storage, which notifies it when MVS storage is constrained or severely constrained, so that it can take short-term action to reduce the number of JVMs in the JVM pool. As JVMs make requests for MVS storage, the storage monitor checks whether the availability of MVS storage has dropped below a pre-set threshold of 40MB, and notifies CICS when this is the case. The storage monitor also notifies CICS if the availability of MVS storage has become so low that MVS storage requests can only be satisfied from a pre-set MVS storage cushion of 20MB.

When the storage cushion is breached and so MVS storage is severely constrained, CICS temporarily prevents the creation of new JVMs for incoming requests, and behaves as though the MAXJVMTCBS limit has been reached and the JVM pool is full. In this situation, if the storage monitor is still receiving requests from CICS to create JVMs, it queues any such requests that cannot obtain sufficient MVS storage. These requests are suspended with a resource name of SOSMVS.

Related concepts
How CICS manages JVMs in the JVM pool
Open transaction environment TCBs
Related references
MAXxxxTCBS

1.
This process is referred to as TCB stealing: deleting a free TCB of one type in order to attach one of a different type.

[[ Contents Previous Page | Next Page Index ]]