Change the attributes of a transient data queue.
SET TDQUEUE >>-SET TDQUEUE(data-value)--+-------------------+---------------> +-ATIFACILITY(cvda)-+ +-NOTERMINAL--------+ '-TERMINAL----------' >--+-----------------------+--+-----------------------+---------> '-ATITERMID(data-value)-' '-ATITRANID(data-value)-' >--+-----------------------+--+--------------------+------------> '-ATIUSERID(data-value)-' +-ENABLESTATUS(cvda)-+ +-DISABLED-----------+ '-ENABLED------------' >--+------------------+--+--------------------------+---------->< +-OPENSTATUS(cvda)-+ '-TRIGGERLEVEL(data-value)-' +-CLOSED-----------+ '-OPEN-------------'
Conditions: INVREQ, IOERR, NOTAUTH, QIDERR, USERIDERR
For more information about the use of CVDAs, see CICS-value data areas (CVDAs).
The SET TDQUEUE command allows you to change some attributes of a transient data queue.
Transient data queues, also called destinations, are defined in TDQUEUE
resource definitions.
There are two basic types: intrapartition and extrapartition. Intrapartition queues are managed and stored
entirely by CICS, and are eligible for automatic task initiation (ATI), the
facility that CICS provides for scheduling tasks automatically. For a transient
data queue, ATI is governed by the value specified on the TRIGGERLEVEL option.
If the value is nonzero, CICS automatically creates a task to process the
queue when the number of items on the queue reaches this trigger level. A
value of zero exempts the queue from ATI.
An extrapartition queue is an MVS sequential data set (or a spool file). Extrapartition queues are not subject to ATI.
There are two other types of queue: indirect and remote, both of which point to one of the basic types. You cannot modify the definition of either with a SET TDQUEUE command, however. (See the INQUIRE TDQUEUE command for more information about these queues.)
You cannot alter the following parameters unless the queue is fully disabled:
To disable a transient data destination, the queue must not currently be in use. If it is in use, the queue enters a "disable pending" state. The last unit of work (UOW) to use the queue fully disables it. The parameters TRIGGERLEVEL, OPENSTATUS, and ENABLESTATUS can be altered regardless of whether the queue is enabled or disabled. The value of the ENABLESTATUS parameter cannot be altered while a queue is in a "disable pending" state.
A transient data queue cannot be disabled while it is in use, or while tasks are waiting to use it.
Indirect and remote queues can be disabled at any time because they have no concept of being "in use".
If tasks are waiting to use an extrapartition queue, a physically recoverable queue, or a non-recoverable intrapartition queue, and an attempt is made to disable the queue, the queue enters a "disable pending" state. The last task to use the extrapartition queue fully disables it.
If an attempt is made to disable a logically recoverable intrapartition TD queue when there are UOWs enqueued upon it, the queue enters a "disable pending" state. The last UOW to obtain the enqueue fully disables the queue. If a UOW has updated a logically recoverable queue and suffers an in-doubt failure, the queue cannot be disabled until the in-doubt failure has been resolved.
If a UOW owns an enqueue on a queue that is in a "disable pending" state, it is allowed to continue making updates.
When a queue is in a "disable pending" state, no new tasks can alter the queue’s state or its contents. A disabled response is returned when a READQ, WRITEQ, or DELETEQ request is issued against a destination that is in a "disable pending" state.
You can set this value at any time, but it is used only during ATI, and only when ATI tasks are to have a principal facility. When ATIFACILITY is NOTERMINAL, CICS retains but does not use the ATITERMID value, and does not display it in an INQUIRE TDQUEUE command.
You can set this value at any time, but it is used only during ATI, and only when the ATIFACILITY value is NOTERMINAL. When ATIFACILITY is TERMINAL, CICS retains but does not use the ATIUSERID value, and does not display it in an INQUIRE TDQUEUE command.
In addition to the authority checks made for any SET TDQUEUE command, when ATIUSERID is specified, CICS invokes the external security manager to ensure that the user associated with the task issuing the command has authority to act for the user named in ATIUSERID. When the ESM is RACF, this means that the user associated with the task must be defined as a RACF surrogate for the user in ATIUSERID.
For extrapartition queues, changing the ENABLESTATUS value affects only the availability of the queue; CICS does not open or close the associated data set.