>>-TDQUEUE(name)--GROUP(groupname)--+-------------------+-------> '-DESCRIPTION(text)-' >--+-TYPE(EXTRA)--| Attributes for extrapartition queues |--+-->< +-TYPE(INTRA)--| Attributes for intra-partition queues |-+ +-TYPE(INDIRECT)--| Attributes for indirect queues |-----+ '-| Attributes for remote queues of unspecified TYPE |---'
Attributes for extrapartition queues .-DATABUFFERS(1)------. |--+-------------------+--+---------------------+---------------> '-BLOCKSIZE(length)-' '-DATABUFFERS(number)-' .-DISPOSITION(SHR)-. >--DDNAME(ddname)--+------------------+-------------------------> +-DISPOSITION(OLD)-+ '-DISPOSITION(MOD)-' .-ERROROPTION(IGNORE)-. .-OPENTIME(INITIAL)--. >--+---------------------+--+--------------------+--------------> '-ERROROPTION(SKIP)---' '-OPENTIME(DEFERRED)-' >--+-----------------------------------------------------------------------------+--> '-+-RECORDFORMAT(FIXED)----+--+-BLOCKFORMAT(BLOCKED)---+--+-----------------+-' '-RECORDFORMAT(VARIABLE)-' '-BLOCKFORMAT(UNBLOCKED)-' +-PRINTCONTROL(A)-+ '-PRINTCONTROL(M)-' .-RECORDSIZE(1)------. >--+--------------------+---------------------------------------> '-RECORDSIZE(number)-' >--+---------------------------------------------------------------------------+--> '-REMOTESYSTEM(connection) +----------------------+-+---------------------+-' '-REMOTELENGTH(number)-' '-REMOTENAME(tdqueue)-' >--+----------------+-------------------------------------------> +-REWIND(LEAVE)--+ '-REWIND(REREAD)-' >--+------------------------------------------+-----------------| | .-TYPEFILE(INPUT)-. | +-+-----------------+--+----------------+--+ | +-DSNAME(DUMMY)--+ | | '-DSNAME(dsname)-' | | .-SYSOUTCLASS(*)-----. | +-TYPEFILE(OUTPUT)--+--------------------+-+ | +-SYSOUTCLASS(class)-+ | | +-DSNAME(DUMMY)------+ | | '-DSNAME(dsname)-----' | '-TYPEFILE(RDBACK)--+----------------+-----' +-DSNAME(DUMMY)--+ '-DSNAME(dsname)-'
Attributes for intrapartition queues .-ATIFACILITY(TERMINAL)--+----------------------+-. | '-FACILITYID(terminal)-' | |--+-------------------------------------------------+----------> +-ATIFACILITY(FILE)-------------------------------+ '-ATIFACILITY(SYSTEM)--+------------------------+-' '-FACILITYID(connection)-' .-RECOVSTATUS(NO)-------. >--+-----------------------+------------------------------------> +-RECOVSTATUS(LOGICAL)--+ '-RECOVSTATUS(PHYSICAL)-' >--+-----------------------------------------------------------------------------+--> '-REMOTESYSTEM(connection) -+----------------------+--+---------------------+-' '-REMOTELENGTH(number)-' '-REMOTENAME(tdqueue)-' .-TRIGGERLEVEL(1)------. >--+----------------------+--+----------------------+-----------> '-TRANSID(transaction)-' '-TRIGGERLEVEL(number)-' .-WAITACTION(REJECT)-. .-WAIT(YES)--+--------------------+-. | '-WAITACTION(QUEUE)--' | >--+----------------+--+-----------------------------------+----| '-USERID(userid)-' '-WAIT(NO)--------------------------'
TDQUEUE attributes for indirect queues |--INDIRECTNAME(tdqueue)----------------------------------------> >--+-----------------------------------------------------------------------------+--| '-REMOTESYSTEM(connection) -+----------------------+--+---------------------+-' '-REMOTELENGTH(number)-' '-REMOTENAME(tdqueue)-'
TDQUEUE attributes for remote queues of unspecified TYPE |--REMOTESYSTEM(connection) -+----------------------+-----------> '-REMOTELENGTH(number)-' >--+---------------------+--------------------------------------| '-REMOTENAME(tdqueue)-'
Specifying ATIFACILITY(SYSTEM) initiates a distributed transaction processing (DTP) session. For more information about DTP considerations in application programming, see the CICS Application Programming Guide.
Is SYSOUTCLASS specified? | Yes | Yes | No | No |
RECORDFORMAT | VARIABLE | FIXED | VARIABLE | FIXED |
Maximum value of RECORDSIZE | 8968 | 8968 | 32763 | 32767 |
Maximum value of BLOCKSIZE | 8972 | 8968 | 32767 | 32767 |
For a new data set, MOD causes the read/write mechanism to be positioned at the beginning of the data set.
When CICS receives a request to open an extrapartition transient data queue, the startup JCL is referenced to check if a data set definition has been created. If one is not found, the 44-character name specified on the DSNAME attribute is used to dynamically allocate the required data set.
If you have JCL that preallocates this queue's DSCNAME to a DSNAME, the DSNAME in the resource definition is overridden by the DSNAME from the JCL. JCL allocation always takes priority.
If you do not specify anything in the FACILITYID field, it defaults to the name of the queue in each case.
If ATIFACILITY(FILE) is specified, the FACILITYID field must be left blank.
Acceptable characters:
Any
lower case characters you enter are converted to upper case. |
The GROUP name can be up to eight characters in length. Lowercase characters are treated as uppercase characters. Do not use group names beginning with DFH, because these characters are reserved for use by CICS.
Is SYSOUTCLASS specified? | Yes | Yes | No | No |
RECORDFORMAT | VARIABLE | FIXED | VARIABLE | FIXED |
Maximum value of RECORDSIZE | 8968 | 8968 | 32763 | 32767 |
Maximum value of BLOCKSIZE | 8972 | 8968 | 32767 | 32767 |
When this queue is accessed, the task that issued the DELETEQ TD, WRITEQ TD, or READQ TD command is enqueued on the input, the output, or both ends of the transient data queue. The enqueue is maintained until the task terminates (or issues a syncpoint request to signal the end of a UOW) to ensure the integrity of the data being accessed. This means that enqueues can be maintained for a longer time, and can result in a queue lockout if an application program accessing the queue performs more than one UOW against the queue without defining each separate UOW to CICS by issuing a syncpoint request.
Furthermore, when a DELETEQ request is issued for a logically recoverable queue, both the input and output ends of the queue are enqueued upon. This can increase the possibility of an enqueue lockout.
In the case of a file record, a record is treated as a single resource and requires only one lock. The TD queue, on the other hand, has two 'ends'—the read end and the write end, and these can be enqueued on (locked) independently. This is because, to control both reading and writing from the TD queue (at the same time), CICS has to maintain two pointers (cursors)—one for reading and one for writing, and these need to be protected from conflicting transactions.
Queue records are held on one or more control intervals (CIs). Each CI is marked for release as soon as the last record on it has been read. However, the release does not occur until the end of task, or until after the next user syncpoint.
The queue is not recovered to its status at the time CICS terminated if the last action on the queue was a READQ request, and if the associated unit of work (UOW) did not commit the changes. On emergency restart, the last read operation is backed out, and appears never to have taken place.
Queue records are held on one or more control intervals (CIs). Each CI is released as soon as the last record on it has been read.
If the queue is defined with TYPE=EXTRA, and no value is specified for REMOTELENGTH, the value on the RECORDSIZE attribute is used at installation time.
When the transient data queue definition is installed, the name entered in the REMOTESYSTEM attribute is compared with the system identifier. If the names are different, the system or region is remote. If the names are the same, the value specified in the TYPE attribute is used. If the TYPE attribute is blank, the installation fails.
Acceptable characters:
Unless
you are using the CREATE command, any lowercase characters you enter are converted
to uppercase. |
You can use SYSOUTCLASS as an alternative to DSNAME. As with DSNAME, the queue may already be preallocated to SYSOUT using a JCL DD statement. A JCL DD statement overrides any specification made using the TDQUEUE resource definition.
When CICS receives a request to open an extrapartition transient data queue, the startup JCL is referenced to check if a data set definition has been created. If one is not found, the 44-character name specified on the DSNAME attribute is used to dynamically allocate the required data set.
When SYSOUT is specified for a queue in the JCL, attributes other than class can also be specified (for example, form types).
For more information about SYSOUT and its associated classes, see the z/OS MVS JCL User's Guide.
Acceptable characters:
For information about entering mixed case information,
see Entering mixed case attributes. |
CEMT INQUIRE TDQUEUE(value1,value2)
CEMT SET TDQUEUE(value1,value2)
where
the comma serves as a list delimiter. See CICS Supplied
Transactions for information about using lists of resource identifiers.The transaction specified must not reside in a remote CICS system. If it does, transaction initiation fails and a warning message is issued to the console.
If you specify the TRANSID attribute, TRIGGERLEVEL defaults to 1. Specify a trigger level of 0 if you want to disable ATI processing. If you do not specify a transaction id, the trigger level is ignored.
If you have specified ATIFACILITY(TERMINAL), the task is not initiated until the specified terminal is available. If you have specified ATIFACILITY(FILE), a terminal is not necessary for the task to be initiated.
If, at maximum task, a short-on-storage or a no-space condition exists for a nonterminal destination, the task is not initiated. This is also true during stages 1 and 2 of initialization, and during the final stage of shutdown. The task is initiated when the stress condition no longer exists, and a subsequent TD WRITE occurs.
For logically recoverable transient data queues, the ATI task is not attached until the task commits forward. This may mean that the trigger level is far exceeded before ATI occurs.
If a VTAM® terminal is defined as the destination for the CSTL transaction on two ISC CICS systems with a trigger level of 1, a performance problem may arise when both systems repeatedly acquire and release the terminal to write the session-started and session-ended messages.
Extrapartition data is sequential and is managed by QSAM.
For example, you can give a different symbolic name, INDIRECTDEST, to each of several different message types. You can then send all these message types to the same physical queue (INDIRECTDEST), or to different physical queues.
The DFH$TDWT sample program demonstrates how you can use indirect queues to send different categories of message to the same terminal. For programming information about DFH$TDWT, see the CICS Customization Guide. DFH$TDWT sample definitions are given in the CICS/ESA 4.1 Sample Applications Guide.
If the QUEUE operand of an EXEC CICS WRITEQ TD, EXEC CICS READQ, or EXEC CICS DELETEQ command specifies an indirect queue, access is determined by the security setting of the final target queue.
An intrapartition destination can be a terminal, a file, or another system. A single data set, managed by VSAM, is used to hold the data for all intrapartition queues.
You can specify a transaction to process the records and a trigger level for each intrapartition queue. The trigger level represents a number of records that are allowed to accumulate before the specified transaction is initiated. See the description of the TRIGGERLEVEL attribute for more information about trigger levels.
The intrapartition queue can be defined as logically recoverable, physically recoverable, or not recoverable.
A logically recoverable queue is restored (after an individual transaction failure or a total system failure) to the status it had at the end of the last completed unit of work (UOW). (A UOW begins at start of task or at a syncpoint, and ends at end of task or at a syncpoint).
Physically recoverable queues are restored (after a total system failure) to the statuses they had when the system failure occurred.
TYPE=REMOTE cannot be specified on the TDQUEUE resource definition. If you want to define a remote transient data queue, leave the TYPE attribute blank and specify values for the remote attributes, REMOTELENGTH, REMOTENAME, and REMOTESYSTEM. Alternatively, you can include the remote attributes as part of the resource definitions for the other transient data queue types. See CICS Resource Definition Guide for further information.
An extrapartition queue can be input or output, but not both.
For more information about the DCB macro fields, see the z/OS DFSMS Macro Instructions for Data Sets.
Acceptable characters:
Unless
you are using the CREATE command, any lowercase characters you enter are converted
to uppercase. |
The value entered in the USERID field is valid only when ATIFACILITY(FILE) is also specified.
When security is active, the trigger-level transaction runs under the authority of the specified userid. This userid must be authorized to all the resources used by the trigger-level transaction.
If you omit the userid from a transient data queue definition, CICS uses the CICS default userid, specified on the DFLTUSER system initialization parameter. Security checking takes place when you are installing an intrapartition definition containing a userid. If the security check fails, the resource definition for that intrapartition queue is not installed.
For further information about surrogate user security, see the CICS RACF Security Guide.
This attribute overrides the WAIT attribute defined on the UOW's transaction definition. See Table 1 for an explanation of the interactions of in-doubt attributes on the TDQUEUE and TRANSACTION definitions.