LEMIC–Lock entry management interface
Use this system macro to issue one or more service requests to a coupling facility (CF) that you are using as an external lock facility (XLF).
Format
- label1
- is a symbolic name that can be assigned to the macro statement.
- BLOCK
- specifies the block of storage that is mapped by the ICFLP DSECT
and must reside in a single page, and that is passed to the service
routine. The format of the BLOCK parameter is:
- (reg)
- is a register containing the address of the storage area where the data is placed.
- OPERATION
- is the type of service request being performed as follows:
- CLEARUSER
- clears all locks, any held lock requests, or any queued lock requests for a particular user from a CF.
- DELETE
- removes one or more held locks from a CF.
- DELETESET
- removes a set of locks associated with a particular CF list structure from a CF.
- LOCATELOCK
- locates a CF and list number where each lock resides for one or more lock names.
- LOCATEMOD
- locates a CF and the starting and ending list numbers that are used for locking by a particular module.
- MANAGE
- sends one or more set, release, or withdraw lock commands, in any combination, to a CF.
- MONITOR
- registers a user for lock granted and contention notification.
- READ
- reads one or more locks in a CF.
- READUSER
- reads all locks that are held by a particular user on a CF.
- VERIFYCF
- verifies the connectivity between a processor and a CF.
- ERROR=label2
- specifies the symbolic name of an error routine in which to branch if any error indicators were set.
Entry requirements
See the ICFLP DSECT to determine the required input fields and the information included on return in the ICFLP_DATA control area.
Return conditions
- Control is returned to the next sequential instruction (NSI).
- The contents of register 14 (R14) and R15 are unknown. The contents of all other registers are preserved across this macro call.
- The reply code for individual requests must be checked to determine the success or failure of that specific request.
- The following response codes are returned to the caller in the
ICFLP_RSC field. Use this information to interpret those response
codes:
- COMPLETED_OK – The requested operation was completed successfully.
- TIMEOUT – The requested operation was not able to be completed
because a timeout occurred.
Submit the operation again using the CF locking restart token provided in the ICFLP_RT field.
- INV_RESTOK – A program error occurred because a CF locking restart
token that is not valid was provided for an operation that was resubmitted. Do the following:
- Correct the CF locking restart token.
- Enter the LEMIC macro again.
- DB_FILLED – The data block provided with either a READ or READUSER
operation is filled and there are more locks to read.
Submit the READ or READUSER operation again using the CF locking restart token provided in the ICFLP_RT field, as well as a data block that no longer contains critical data.
- LN_MM – A list number mismatch occurred. Do the following:
- Submit a new operation (such as LOCATELOCK, LOCATEMOD, READ, or READUSER) that will return a valid list number.
- Submit the original operation again using a valid list number.
- LN_DNX – The list number does not exist. Do the following:
- Submit a new operation (such as LOCATELOCK, LOCATEMOD, READ, or READUSER) that will return a valid list number.
- Submit the original operation again using a valid list number.
- INS_SPACE – An error occurred during a read operation because there is not enough space in the data block.
- GLBL_MM – A global lock manager mismatch occurred.
Exit the application. If necessary, see your IBM® service representative for more information.
- LCL_MM – A lock manager mismatch occurred.
Exit the application. If necessary, see your IBM service representative for more information.
- LAU_MM – A list authority mismatch error occurred.
Exit the application. If necessary, see your IBM service representative for more information.
- INS_MB_SPACE – A program error occurred because there is not enough
message buffer space available to read the locks in a CF or to read
all locks held by a particular user on a CF.
Exit the application. If necessary, see your IBM service representative for more information.
- ABNORMAL – A program error occurred because of an abnormal locking
condition. Some of the set, release, or withdraw commands were not
processed by a CF.
Exit the application. If necessary, see your IBM service representative for more information.
- RRC_ERROR – An error occurred while processing a MONITOR operation.
Exit the application. If necessary, see your IBM service representative for more information.
- CVCF_ERROR – The CCCFLC service routines were unable to determine
the CF or the list number from the information provided with the operation.
Exit the application and review the application code to ensure the operation was set up correctly. If necessary, see your IBM service representative for more information.
- CMD_SUPPR – A program error occurred because the function call
was suppressed.
Exit the application and review the console logs to determine if the CF specified in the operation was correctly added to the CF locking configuration. If necessary, see your IBM service representative for more information.
- CMD_TERM – A program error occurred because the function call ended.
Programming considerations
- For information about macro register conventions, see Register conventions.
- This macro can be run on any I-stream.
- Attention: Using this macro can cause corruption of the locking control information on the CF. This corruption can lead to errors that cannot be predicted and online database integrity problems.
- A WAITC macro is issued implicitly with this macro.
- The calling program returns storage (specified on the BLOCK parameter) when it is no longer needed.
- If the specified CF or CF locking structure is not valid, a system error is issued.
Examples
None.
Related information
None.
