Cancels prior work that has been done via a transaction object.
Supports: MQSeries, MQSeries C, MSMQ


CALL ABORT(transid, rc);

Required Arguments

Numeric, input
Specifies the handle to a transaction object that is obtained from the BEGINTRANSACTION function.
Numeric, output
Provides the return code from the CALL routine. If an error occurs, then the return code is nonzero. You can use the SAS function SYSMSG() in order to obtain a textual description of the return code.


For MQSeries, all transactions are associated with a particular queue manager. So when you cancel a unit of work that is associated with a particular queue manager, all work performed by that particular queue manager under synchpoint control is canceled at once. You can associate more than one transaction object with the same queue manager, but it is not a good practice. Under MSMQ, all transaction objects are autonomous.


The following example cancels the processing of a transactional unit of work:
length msg $ 200;
length transid rc 8;
call abort(transid, rc);
if rc ^= 0 then do;
  put 'ABORT: failed';
  msg = sysmsg();
  put msg;
else put 'ABORT: succeeded';