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

Read syntax diagramSkip visual syntax diagramlabel1LEMIC BLOCK= (reg),OPERATION=CLEARUSERDELETEDELETESETLOCATELOCKLOCATEMODMANAGEMONITORREADREADUSERVERIFYCF,ERROR= label2
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:
      1. Correct the CF locking restart token.
      2. 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:
      1. Submit a new operation (such as LOCATELOCK, LOCATEMOD, READ, or READUSER) that will return a valid list number.
      2. Submit the original operation again using a valid list number.
    • LN_DNX – The list number does not exist.
      Do the following:
      1. Submit a new operation (such as LOCATELOCK, LOCATEMOD, READ, or READUSER) that will return a valid list number.
      2. 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.