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


CALL COMMIT(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 commit a unit of work that is associated with a particular queue manager, all work that is performed by that particular queue manager under synchpoint control is committed 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 commits a transactional unit of work for processing:
length msg $ 200;
length transid rc 8;
call commit(transid, rc);
if rc ^= 0 then do;
  put 'COMMIT: failed';
  msg = sysmsg();
  put msg;
else put 'COMMIT: succeeded';