This macro specifies a destination for data that is to be stored temporarily.
An intrapartition destination may be a terminal, a file, or another system. A single data set, managed by VSAM, is used to hold the data for all intrapartition destinations. This macro must be coded once for every intrapartition destination.
You can specify a transaction to process the records and a trigger level for each intrapartition destination. The trigger level represents a number of records. When this number of records has been accumulated, the specified transaction is initiated.
The intrapartition destination may be defined as logically recoverable, physically recoverable, or not recoverable.
Logically recoverable destinations are restored (after individual transaction failures and after total system failures) to the status they had at the end of the last completed LUW. (A logical unit of work (LUW) begins at start of task or at a synchronization (sync) point, and ends at end of task or at a syncpoint.)
Physically recoverable destinations are restored (after a total system failure) to the status they had when the system failure occurred.
>>-DFHDCT--TYPE=INTRA--,DESTID=name-----------------------------> >--+---------------------------------------+--------------------> | .-TERMINAL---------------. | '-,DESTFAC=--+------------------------+-' +-TERMINAL--+----------+-+ | '-,trmidnt-' | +-FILE--+--------------+-+ | '-,USERID=name-' | '-SYSTEM,sysidnt---------' >--+-------------------+--+---------------+---------------------> | .-NO-. | '-,RMTNAME=name-' '-,DESTRCV=--+----+-' +-PH-+ '-LG-' >--+---------------+--+---------------+-------------------------> '-,SYSIDNT=name-' '-,TRANSID=name-' >--+-----------------------+----------------------------------->< | .-1------. | '-,TRIGLEV=--+--------+-' '-number-'
You must not use special characters, lower case, or mixed case characters in a DESTID name.
If you do not specify trmidnt, it defaults to the value of DESTID. If ATI is used, as specified in the TRANSID and TRIGLEV operands, the transaction that is initiated is associated with the specified terminal, which must be available before the transaction can be initiated.
The trigger-level transaction runs under the authority of the specified userid, which must be authorized to all the resources used by the transaction.
If you omit the userid from a qualifying trigger-level entry, CICS uses the userid specified on the TYPE=INITIAL macro. If you omit the userid from the TYPE=INITIAL macro also, CICS uses the CICS default userid, specified on the DFLTUSER system initialization parameter. You must ensure that the CICS region userid of any CICS region in which this DCT is installed, is defined as a surrogate for all the userids specified in the DCT. This is because, during initialization, CICS performs a surrogate user security check against the CICS region userid. If this check fails, CICS deactivates automatic transaction initiation by trigger-level for the intrapartition queue for which the surrogate check failed.
For further information about surrogate user security, see the CICS RACF® Security Guide.
The primary purpose of coding DESTFAC=SYSTEM,sysidnt is to initiate a distributed transaction processing (DTP) session. For details of DTP considerations in application programming, see the the CICS Application Programming Guide.
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.
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.
When this destination is accessed, the task that issued the WRITEQ TD or READQ TD command is enqueued upon the input or output end of the transient data queue, respectively. This enqueue is maintained until the task terminates or issues a syncpoint request to signal the end of a logical unit of work. This is necessary to ensure the integrity of the data being accessed.
Because the enqueues are thus maintained for a longer period of time, an enqueue lockout is possible if an application program that accesses this destination performs what is effectively more than one logical unit of work against it without defining each separate logical unit of work to CICS by issuing the syncpoint request. Furthermore, when a DELETEQ request is issued for a logically recoverable destination, both the input and output ends of the queue are enqueued upon. This increases the probability of an enqueue lockout.
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.
If you omit this parameter, CICS uses the name specified on the DESTID parameter (that is, the local and remote names are the same).
This parameter is meaningful only when you specify the SYSIDNT parameter.
If you omit SYSIDNT, the queue is treated as a local queue.
This transaction must not reside in a remote CICS system, or be defined as dynamic. If it does, the transaction initiation fails and an attention message is issued to the console.
If you do not specify a transaction id, the trigger level is ignored.
If you have coded DESTFAC=TERMINAL, the task is not initiated until the terminal is available.
If you have coded DESTFAC=FILE, no terminal is necessary for the task to be initiated. For a non-terminal destination, if a maximum task, short-on-storage or no-space condition exists, the task is not initiated. This is also true during stages 1 and 2 of initialization, and during the final stage of shutdown. It is initiated when the stress condition no longer exists and a subsequent TD WRITE occurs.
If a VTAM® terminal is defined, with TRIGLEV=1, as the destination for CSTL on two ISC CICS systems, a performance problem may arise when both systems repeatedly acquire and release the terminal in order to write out the session started and session ended messages.
During CICS operation, the trigger level can be changed using the CEMT transaction. If the trigger level is reduced to a number that is equal to or less than the number of records accumulated so far, the task is initiated when the next record is sent to the destination.