DISPATCH

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

HP_POOL

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

However, if the number of H8 TCBs in the pool is at the limit set by MAXHPTCBS, 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 MAXHPTCBS limit is raised, the task at the front of the queue is resumed, and the open TCB allocation process is retried.

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 J8 or J9 pool. If there is not a free J8 or J9 mode TCB, and the number of open TCBs in the J8 or J9 pool is less than MAXJVMTCBS, CICS attaches a new TCB, and allocates this to the requesting task.

However, if the number of J8 or 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.

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:

  • Attaches a new L8 mode TCB of the required subspace if the number of open TCBs in the L8 open TCB pool is less than MAXOPENTCBS, and allocates the new TCB to the requesting task.

  • Detaches a free open L8 mode TCB associated with a different subspace (if there is one available and MAXOPENTCBS limit has been reached), attaches a new L8 mode TCB, and allocates this new TCB to the requesting task. (This process is referred to as TCB stealing: deleting a free TCB of one type in order to attach one of a different type.)

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.

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.

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.