VMS Help
System Services, $SETDTI
*Conan The Librarian
|
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);
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 HP 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 HP 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
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 HP OpenVMS
System Manager's Manual, for information on
defining node names.
DTI$T_PART_LOG_ID Reserved by HP.
DTI$T_TID A 16-byte field containing the transaction
identifier.