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,...);
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 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.