VMS Help
System Services, $ABORT TRANS
*Conan The Librarian
|
Ends a transaction by aborting it.
Format
SYS$ABORT_TRANS [efn] ,[flags] ,iosb [,[astadr] ,[astprm]
,[tid] ,[reason] ,[bid]]
C Prototype
int sys$abort_trans (unsigned int efn, unsigned int flags,
struct _iosb *iosb,...);
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 these option
flags, described in $ABORT_TRANS Option Flags. All undefined bits
must be 0. If this argument is omitted, no flags are used.
Table SYS-1 $ABORT_TRANS Option Flags
Flag Description
DDTM$M_ Set this flag to indicate that the service should
NOWAIT return to the caller without waiting for final
cleanup. Note that $ABORT_TRANSW with the DDTM$M_
NOWAIT flag set is not equivalent to $ABORT_TRANS.
$ABORT_TRANS returns when the operation has been
queued. The former does not return until the
operation has been initiated. The latter returns
as soon as the operation has been queued. The
full range of status values may be returned from a
nowait call.
DDTM$M_SYNC Set this flag to specify that successful
synchronous completion is to be indicated 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
I/O status block in which the following information is returned:
o The completion status of the service, returned as a condition
value.
o An abort reason code that gives one reason why the transaction
aborted, if the completion status of the service is SS$_
NORMAL.
Note that, if there are multiple reasons why the transaction
aborted, the abort reason code returned in the I/O status
block might not be the same as the abort reason code passed
in the reason argument. The DECdtm transaction manager returns
one of the reasons in the I/O status block. It may return
different reasons to different branches of the transaction.
For example, if the call to $ABORT_TRANS gives DDTM$_ABORTED
as the reason and the transaction timeout expires at about the
same time as the call to $ABORT_TRANS, then either the DDTM$_
TIMEOUT or DDTM$_ABORTED reason code can be returned in the
I/O status block.
The $DDTMMSGDEF macro defines symbolic names for abort reason
codes, which are defined in Abort Reason Codes:
Table SYS-2 Abort Reason Codes
Symbolic Name Description
DDTM$_ABORTED The application aborted the transaction
without giving a reason.
DDTM$_COMM_FAIL A communications link failed.
DDTM$_INTEGRITY A resource manager integrity constraint check
failed.
DDTM$_LOG_FAIL A write operation to the transaction log
failed.
DDTM$_ORPHAN_ An unauthorized branch caused failure.
BRANCH
DDTM$_PART_SERIAL A resource manager serialization check
failed.
DDTM$_PART_TIMEOUT The timeout specified by a resource manager
expired.
DDTM$_SEG_FAIL A process or image terminated.
DDTM$_ A DECdtm transaction manager serialization
SERIALIZATION check failed.
DDTM$_SYNC_FAIL The transaction was not globally
synchronized; an authorized branch was not
added to the transaction.
DDTM$_TIMEOUT The timeout specified on $START_TRANS
expired.
DDTM$_UNKNOWN The reason is unknown.
DDTM$_VETOED A resource manager was unable to commit the
transaction.
To view the I/O status block structure diagram, see the HP
OpenVMS System Services Reference Manual.
astadr
OpenVMS usage:ast_procedure
type: procedure value
access: call without stack unwinding
mechanism: by reference
AST routine that is 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
access mode of the caller.
astprm
OpenVMS usage:user_arg
type: longword (unsigned)
access: read only
mechanism: by value
AST parameter that is passed to the AST routine specified by the
astadr argument.
tid
OpenVMS usage:trans_id
type: octaword (unsigned)
access: read only
mechanism: by reference
Identifier of the transaction to be aborted.
If this argument is omitted, $ABORT_TRANS aborts the default
transaction of the calling process.
reason
OpenVMS usage:cond_value
type: longword (unsigned)
access: read only
mechanism: by value
Code that gives the reason why the application is aborting the
transaction. The $DDTMMSGDEF macro defines symbolic names for
abort reason codes. See the iosb item code for a list of abort
reason codes.
The default value for this argument is DDTM$_ABORTED.
bid
OpenVMS usage:branch_id
type: octaword (unsigned)
access: read only
mechanism: by reference
The identifier (BID) of the branch that is aborting the
transaction.
The default value of this argument is zero, which is the BID of
the branch that started the transaction.