%DEFINE DDTM$X_TRANSACTION_ID BASIC$OCTAWORD %DEFINE DDTM$X_UTC_DATE_TIME BASIC$OCTAWORD ! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! Transaction Manager services structure definitions ! DECLARE LONG CONSTANT DDTM$S_TID = 16 ! Size of a transaction id ! ! System services modifier flags ! DECLARE LONG CONSTANT DDTM$M_SYNC = x'00000001' DECLARE LONG CONSTANT DDTM$M_NONDEFAULT = x'00000002' DECLARE LONG CONSTANT DDTM$M_PROCESS = x'00000004' DECLARE LONG CONSTANT DDTM$M_VOLATILE = x'00000008' DECLARE LONG CONSTANT DDTM$M_RUNDOWN = x'00000010' DECLARE LONG CONSTANT DDTM$M_CANCEL = x'00000020' DECLARE LONG CONSTANT DDTM$M_FULL_STATE = x'00000040' DECLARE LONG CONSTANT DDTM$M_BRANCH_UNSYNCHED = x'00000080' DECLARE LONG CONSTANT DDTM$M_COORDINATOR = x'00000100' DECLARE LONG CONSTANT DDTM$M_NOWAIT = x'00000200' DECLARE LONG CONSTANT DDTM$M_FINAL_STATE = x'00000400' DECLARE LONG CONSTANT DDTM$M_LATE = x'80000000' DECLARE LONG CONSTANT DDTM$S_FLAGS = 4 record DDTM$R_FLAGS ! Synchronous status requested ! Not the default transaction ! Process-permanent RM ! volatile-only state ! forget all RMs ! Cancel GET operation ! Full state information ! Don't need to sync branch ! Join Coordinating RM ! Don't wait for termination ! Get final transaction outcome ! Fill out to a longword ! Phase one branch or join LONG SYNC_bits ! COMMENT ADDED BY SDL - SYNC_bits contains bits SYNC through LATE end record DDTM$R_FLAGS ! ! Resource manager event request options ! DECLARE LONG CONSTANT DDTM$M_EV_PREPARE = x'00000001' DECLARE LONG CONSTANT DDTM$M_EV_ABORT = x'00000002' DECLARE LONG CONSTANT DDTM$M_EV_COMMIT = x'00000004' DECLARE LONG CONSTANT DDTM$M_EV_DEFAULT_TRANS = x'00000008' DECLARE LONG CONSTANT DDTM$M_EV_TRANS_START = x'00000010' DECLARE LONG CONSTANT DDTM$S_EVENT_MASK = 4 record DDTM$R_EVENT_MASK ! Vote request required ! Abort notificiation ! Commit notificiation ! New default TID ! Request transaction start events ! Fill out to a longword LONG EV_PREPARE_bits ! COMMENT ADDED BY SDL - EV_PREPARE_bits contains bits EV_PREPARE through FILL_2 end record DDTM$R_EVENT_MASK ! ! $TRANS_EVENT system service event types ! DECLARE LONG CONSTANT DDTM$K_TX_PREPARE = 1 ! Prepare transaction request DECLARE LONG CONSTANT DDTM$K_TX_COMMIT = 2 ! Commit transaction order DECLARE LONG CONSTANT DDTM$K_TX_ABORT = 3 ! Abort transaction order DECLARE LONG CONSTANT DDTM$K_TX_RECOVER_COMMIT = 4 ! Commit order on recovery DECLARE LONG CONSTANT DDTM$K_TX_RECOVER_ABORT = 5 ! Abort order on recovery ! ! Resource manager event report types ! DECLARE LONG CONSTANT DDTM$K_PREPARE = 1 ! Prepare operation DECLARE LONG CONSTANT DDTM$K_COMMIT = 2 ! Commit operation DECLARE LONG CONSTANT DDTM$K_ABORT = 3 ! Abort operation DECLARE LONG CONSTANT DDTM$K_ONE_PHASE_COMMIT = 4 ! One-phase commit DECLARE LONG CONSTANT DDTM$K_DEFAULT_CLEARED = 5 ! Tid no longer default DECLARE LONG CONSTANT DDTM$K_DEFAULT_SET = 6 ! Tid now process default DECLARE LONG CONSTANT DDTM$K_STARTED_DEFAULT = 7 ! New process default transaction DECLARE LONG CONSTANT DDTM$K_STARTED_NONDEFAULT = 8 ! New nondefault transaction DECLARE LONG CONSTANT DDTM$K_RECOVER_COMMITTED = 9 ! Transaction committed DECLARE LONG CONSTANT DDTM$K_RECOVER_ERROR = 10 ! Error during recovery DECLARE LONG CONSTANT DDTM$K_RECOVER_INDOUBT = 11 ! Transaction is indoubt DECLARE LONG CONSTANT DDTM$K_RECOVER_RESOLVE = 12 ! RM resposible for resolution ! ! Transaction report structure (DECdtm V1.0) ! DECLARE LONG CONSTANT DDTM$S_ASTDEF = 56 record DDTM$R_ASTDEF ! Transaction event AST parameter LONG DDTM$L_ARGLEN ! Structure length LONG DDTM$A_TID ! Transaction id LONG DDTM$L_PART_ID ! Participant identifier LONG DDTM$L_RM_CTX ! RM event ASTPRM LONG DDTM$L_OPTYPE ! Operation type LONG DDTM$L_REASON ! Abort extended reason code BASIC$OCTAWORD DDTM$O_UTC_CMT_TIME ! Reserved to Digital BASIC$OCTAWORD DDTM$O_UTC_LATEST ! Reserved to Digital end record DDTM$R_ASTDEF ! ! Transaction report structure ! DECLARE LONG CONSTANT DDTM$S_REPORTDEF = 72 record DDTM$R_REPORTDEF LONG DDTM$L_REPORT_LEN ! Structure length LONG DDTM$A_TID_PTR ! Transaction id LONG DDTM$L_REPORT_ID ! Report identifier LONG DDTM$L_RM_CONTEXT ! RM event ASTPRM LONG DDTM$L_EVENT_TYPE ! Event report type LONG DDTM$L_ABORT_REASON ! Abort extended reason code BASIC$OCTAWORD DDTM$O_COMMIT_TIME ! Reserved to Digital BASIC$OCTAWORD DDTM$O_LATEST_TIME ! Reserved to Digital BASIC$QUADWORD DDTM$Q_TX_CLASS ! Transaction class descriptor BASIC$QUADWORD DDTM$Q_PART_NAME ! RM Instance descriptor end record DDTM$R_REPORTDEF