Enqueue EXEC interface program exits XNQEREQ and XNQEREQC

You can use the XNQEREQ exit to intercept enqueue API requests before any action has been taken on the request. You can use the XNQEREQC exit to intercept the response after an enqueue API request has completed.

The API requests affected are:
  • EXEC CICS ENQ
  • EXEC CICS DEQ
XNQEREQ
Using XNQEREQ, you can:
  • Analyze the API parameter list (function, keywords, argument values, and responses).
  • Modify any input parameter value before execution of a request.
  • Prevent execution of a request. This enables you to replace the CICS® function with your own processing.
Notes for using XNQEREQ to alter the ENQ or DEQ scope:
  1. XNQEREQ enables you to allow existing applications to be converted to use sysplex enqueues without changing the application.
    Note: Use of either the ENQMODEL resource definition or the user exit allows this in most cases, but those applications where the resource name is determined dynamically and not known in advance can only be so converted by use of this exit.
  2. Sysplex and region scope enqueues use separate namespaces. A region scope enqueue will never wait on a sysplex enqueue, nor will a sysplex scope enqueue wait on a region enqueue.
    Note: This situation can only arise when you use the exit. Use of the ENQMODEL resource definitions as your only method of defining the SCOPE of an ENQ or DEQ avoids this potential risk.
  3. Both region and sysplex scope are supported for string ENQs, but sysplex scope is not supported for address ENQ.
XNQEREQC
Using XNQEREQC, you can:
  • Analyze the API parameter list.
  • Pass data between your XNQEREQ and XNQEREQC exit programs when they are invoked for the same request
  • Pass data between your enqueue exit programs when they are invoked within the same task.

CICS supplies a sample exit program, DFH$XNQE, for the enqueue EXEC interface. For more information, see Enqueue EXEC interface sample exit program: DFH$XNQE.