COMMIT

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

Syntax

CALL COMMIT(transid, rc);

Required Arguments

transid
Numeric, input
Specifies the handle to a transaction object that is obtained from the BEGINTRANSACTION function.
rc
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.

Details

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.

Example

The following example commits a transactional unit of work for processing:
length msg $ 200;
length transid rc 8;
rc=0;
call commit(transid, rc);
if rc ^= 0 then do;
  put 'COMMIT: failed';
  msg = sysmsg();
  put msg;
end;
else put 'COMMIT: succeeded';