IFCMMT (HLI function)

From m204wiki
Revision as of 22:06, 12 July 2016 by ELowell (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The conventions used on this page are described in Function call notation conventions.

Summary

Description
The IFCMMT call (COMMIT) commits and ends the current update unit for the active thread or threads.
Thread type
multiple cursor IFSTRT, single cursor IFSTRT
IFCALL function number
72

Syntax

IFCMMT(RETCODE)

Compile-only form
Not available
Execute-only form
Not available
Parameter Description
RETCODE [O,i,r] The Model 204 return code is the required output parameter. The code is a binary integer value.

Usage notes

Use the IFCMMT call to end an update unit. IFCMMT applies to the active threads in a host language job. You can issue the IFCMMT call on the following types of threads:

  • Single cursor IFSTRT update thread (thread type is 1)
  • Multiple cursor IFSTRT thread

Note: If an IFCMMT call is encountered on a read-only single cursor IFSTRT thread, Model 204 returns an error completion code of 40.

Record locking behavior

IFCMMT releases the lock pending updates (LPU) exclusive lock on updated records and the single record enqueue (SRE) on the current record (if one exists) that were obtained by this thread. The transaction is ended for all participating threads and the backout and constraints logs are freed.

Found sets are not released and the current record does not change. In a multithreaded transaction the LPU and SRE locks obtained by other threads are still held. Also, you must issue IFCMMT on all of the single cursor IFSTRT threads participating in a multi-transaction if you issue the call on any one of the threads.

For more information about transaction management, see HLI: Transactions.

Coding example (COBOL)

WORKING-STORAGE SECTION. 01 ARGS-FOR-CALL. 05 RETCODE PIC 9(5) COMP SYNC. . . . PROCEDURE DIVISION. . . . CALL "IFCMMT" USING RETCODE.