The Set Distributed Transaction Information service removes resource managers from transactions. It can also be used to modify transaction states. Format SYS$SETDTI [efn], [flags], iosb, [astadr], [astprm], [contxt], func, itmlst C Prototype int sys$setdti (unsigned int efn, unsigned int flags, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm, unsigned int *contxt, unsigned short int *func, void *itmlst);
1 – Arguments
efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag that is set when the service completes. If this argument is omitted, event flag 0 is used. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags specifying options for the service. The flags argument is a longword bit mask in which each bit corresponds to an option flag. The $DDTMDEF macro defines symbolic names for the option flag described in $SETDTI Operation Flag. All undefined bits must be 0. If this argument is omitted, no flags are used. Table SYS-23 $SETDTI Operation Flag Flag Name Description DDTM$M_SYNC Specifies successful synchronous completion by returning SS$_SYNCH. When SS$_SYNCH is returned, the AST routine is not called, the event flag is not set, and the I/O status block is not filled in. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference The I/O status block in which the completion status of the service is returned as a condition value. Refer to the VSI OpenVMS System Services Reference Manual to view the I/O status block diagram. astadr OpenVMS usage:ast_procedure type: procedure entry mask access: call without stack unwinding mechanism: by reference The AST routine executed when the service completes, if SS$_ NORMAL is returned in R0. The astadr argument is the address of the entry mask of this routine. The routine is executed in the same access mode as that of the caller of the $SETDTI service. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value The AST parameter passed to the AST routine specified by the astadr argument. contxt OpenVMS usage:contxt type: longword (unsigned) access: modify mechanism: by reference Context value obtained from a call to $GETDTI. It implicitly specifies a node and transaction manager log identifier. func OpenVMS usage:function_code type: word (unsigned) access: read only mechanism: by value Function modifier that specifies the set operation to be performed. The func argument is a longword value containing the function code. $SETDTI Function Codes lists the available function codes: Table SYS-24 $SETDTI Function Codes Function Description DTI$K_DELETE_RM_ Deletes the resource manager specified in NAME itmlst item DTI$_TRANSACTION_INFORMATION, DTI$T_PART_NAME from the transaction specified by DTI$_TRANSACTION_INFORMATION, DTI$T_TID. DTI$K_DELETE_ Deletes the transaction specified by itmlst TRANSACTION item DTI$_TRANSACTION_INFORMATION, DTI$T_TID. DTI$K_MODIFY Modifies the transaction specified by itmlst STATE item DTI$_TRANSACTION_INFORMATION, DTI$T_TID, using the transaction state specified in DTI$_ B_STATE. itmlst OpenVMS usage:item_list_3 type: longword (unsigned) access: read only mechanism: by reference Item list specifying the transaction information that $SETDTI is to use. The itmlst argument is the address of a list of item descriptors, each of which describes an item of information. The list of item descriptors is terminated by a longword of 0. Each item descriptor in the item list acts as an input argument to $SETDTI and as such is only required to be read only. Refer to the VSI OpenVMS System Services Reference Manual to view the single item descriptor format. The following table describes the itmlst item descriptor fields: Field Description Buffer A word containing a user-supplied integer length specifying the length (in bytes) of a buffer from which $SETDTI is to read the information. The length of the buffer needed depends on the item code specified in the item code field of the item descriptor. If the value of buffer length is too small, $SETDTI will return an error status. Item code A word containing a user-supplied symbolic code specifying the search item that $SETDTI is to use. The $DTIDEF macro defines these codes. Each item code is described in the Item Codes section. Buffer A longword containing the user-supplied address address of the buffer from which $SETDTI reads the item information. Return This longword that is not used in the item list as length all items are read-only. address
2 – Item Codes
DTI$_TRANSACTION_INFORMATION When you specify DTI$_TRANSACTION_INFORMATION, $SETDTI uses the fields in the following table to perform the $SETDTI call. Each function requires a specific set of fields from the transaction record to perform its operation. If one or more of these fields is not present or valid, then the $SETDTI call will fail. The fields required by each function are listed in the func argument description. Item Description DTI$B_PART_NAME_ A byte containing the length of the LEN participant name field DTI$T_PART_NAME. DTI$B_STATE A byte containing the state of the transaction. Two states are valid: DTI$K_ COMMITTED and DTI$K_ABORTED. DTI$T_PART_NAME A character field containing DTI$B_PART_ NAME_LEN characters that specifies a resource manager name. To ensure smooth operation in a mixed-network environment, refer to the chapter entitled Managing DECdtm Services in the VSI OpenVMS System Manager's Manual, for information on defining node names. DTI$T_PART_LOG_ID Reserved by VSI. DTI$T_TID A 16-byte field containing the transaction identifier.