INQUIRE EXITPROGRAM
Retrieve information about a user exit.
Conditions: END, ILLOGIC, INVREQ, NOTAUTH, PGMIDERR
This command is threadsafe.
For more information about the use of CVDAs, see CICS-value data areas (CVDAs).
Description
The INQUIRE EXITPROGRAM command returns information about a global or task-related user exit. You identify the exit about which you are inquiring with the ENTRYNAME and EXITPROGRAM options.
Browsing
INQUIRE EXITPROGRAM EXIT(data-value) START
To look at all user exits, both global and task-related, you omit the EXIT option on the command that starts the browse. You can distinguish between the two types by looking at the NUMEXITS value, which is zero for a task-related exit and positive for a global exit.
On either type of browse, the sequence in which the exits are retrieved is the time order in which they were enabled.
Options
- APIST
- returns
a CVDA indicating which APIs the user exit program uses. CVDA values are:
- BASEAPI
- CICSAPI has replaced BASEAPI. Both these CVDA values have the same meaning, and, for compatibility, BASEAPI is still accepted by the translator.
- CICSAPI
- The user exit program is enabled without the OPENAPI option. This means it is restricted to the CICS permitted programming interfaces. In releases before CICS TS for z/OS®, Version 3, this CVDA was called BASEAPI.
- OPENAPI
- The task-related user exit program is enabled with the OPENAPI option. This means it is permitted to use non-CICS API, for which purpose CICS will give control to the task-related user exit under an L8 mode open TCB. OPENAPI assumes that the program is written to threadsafe standards.
- CONCURRENTST
- returns a CVDA indicating the concurrency
status of the global or task-related user exit program. This
is the value of the CONCURRENCY attribute of the PROGRAM definition,
or of any override specified by the latest ENABLE command for
this program.
CVDA values are:
- QUASIRENT
- The exit program is defined as being quasi-reentrant, and is able to run only under the CICS QR TCB when invoking CICS services through the CICS API. To use any MVS™ services, a task-related user exit program must switch to a privately-managed TCB.
- THREADSAFE
- The exit program is defined as threadsafe, and is capable of running
on an open TCB.
For task-related user exit programs only, if the APIST option returns OPENAPI the program will always be invoked under an open TCB.
For both global and task-related user exit programs, an APIST option of CICSAPI means that the program is invoked under whichever TCB is in use by its user task when the program is given control. This could be either an open TCB or the CICS QR TCB.
- REQUIRED (task-related user exits only)
- The exit program is always run on an open TCB. If OPENAPI is specified, an L8 open TCB is used. If OPENAPI is not specified, then any eligible key 8 open TCB is used, L8, T8, or X8.
Note: When a task-related user exit is enabled REQUIRED and OPENAPI, it is treated the same as if it were enabled THREADSAFE and OPENAPI. For compatibility, an INQUIRE EXITPROGRAM command for either combination will always return THREADSAFE, OPENAPI. For a task-related user exit enabled REQUIRED and CICSAPI, INQUIRE EXITPROGRAM will return REQUIRED, CICSAPI. - CONNECTST(cvda) (task-related user exits only)
- returns
a CVDA value indicating the state of the connection between the exit
and the external resource manager that it supports. CONNECTST enables
you to determine whether the specified exit has connected to its resource
manager, so that CICS tasks
can safely issue API requests to the resource manager.
For example, to inquire about the connection to DBCTL, use an EXITPROGRAM value of DFHDBAT and an ENTRYNAME value of DBCTL. To inquire about the connection to DB2®, use an EXITPROGRAM value of DFHD2EX1, or DSN2EXT1 (DSN2EXT1 is still recognised for compatibility with earlier releases) , with an ENTRYNAME of DSNCSQL, or DSNCCMD.
CVDA values are:- CONNECTED
- The task-related user exit is connected to its external resource manager subsystem, and API requests can be issued.
- NOTAPPLIC
- The exit is not a task-related user exit.
- NOTCONNECTED
- The task-related user exit is not connected to its external resource manager subsystem, and therefore API requests cannot be issued.
- UNKNOWN
- The task-related user exit has been enabled and started, but not enabled for SPI requests. UNKNOWN can also be returned if CICS is unable to call the task-related user exit. In both of these cases, CICS cannot tell whether it is connected to its external resource manager.
UNKNOWN is returned for all subsequent calls for the remaining lifetime of the task. A new task is able to call the task-related user exit and get the required information.
If the task-related user exit is not enabled, the INQUIRE command returns PGMIDERR. This also indicates that CICS is not connected to the resource manager.
Note: To determine whether DB2 or DBCTL is available, use CONNECTST rather than STARTSTATUS, because the task-related user exit can be started without having succeeded in making its database manager available to CICS. - ENTRY(ptr-ref)
- returns a fullword binary field indicating the entry address of the user exit.
- ENTRYNAME(data-area)
- specifies the 8-character name of the exit about which you are inquiring. If you omit ENTRYNAME, CICS assumes that the name of the exit is the same as the name of the load module specified in the EXITPROGRAM option. Consequently, you must specify the same values for ENTRYNAME and EXITPROGRAM as were specified in the ENTRYNAME and PROGRAM options on the ENABLE command that created the exit. (EXITPROGRAM in this command corresponds to PROGRAM in an ENABLE command.)
- EXIT(data-value) (global user exits only)
- specifies the 8-character identifier of an exit point with which the exit about which you are inquiring is associated. You must specify an exit point when you inquire about a global user exit. Exit points do not apply to task-related user exits, however, and you must not specify this option when you inquire about such an exit.
- EXITPROGRAM(data-value)
- specifies the 8-character name of the load module associated with the exit about which you want information. This is the value that was specified in the PROGRAM option of the ENABLE command that defined the exit.
- FORMATEDFST(cvda) (task-related user exits only)
- returns
a CVDA value indicating that the FORMATEDF option is enabled for the
exit. FORMATEDF causes extra invocations of the exit for tasks executed
under EDF, to format output screens and interpret input, and applies
only to task-related user exits. CVDA values are:
- FORMATEDF
- FORMATEDF is turned on.
- NOFORMATEDF
- FORMATEDF processing is turned off.
- NOTAPPLIC
- This is a global user exit.
- GAENTRYNAME(data-area)
- returns
the 8-character name of the user exit that owns the global work area
used by the exit about which you are inquiring.
This value is returned only when the exit uses a global work area owned by another exit. Blanks are returned if it has allocated its own work area.
- GALENGTH(data-area)
- returns
a halfword binary field indicating the length of the global work area
for the exit. Note: If a GALENGTH greater than 32767 has been defined (see GALENGTH for ENABLE PROGRAM for details), the response to this command reflects that higher value as follows:
- If you issued the INQUIRE EXITPROGRAM command at your terminal, the response shows a negative value for GALENGTH.
- If you issued the INQUIRE EXITPROGRAM command from a program, the high order bit of the response for GALENGTH is set. You must allow for this possibility when deciding what operation to next perform on the returned value.
- GAUSECOUNT(data-area)
- returns a halfword binary field indicating the total number of global or task-related user exits that are using the global work area owned by this exit. This count includes the owning exit program. A zero is returned if the exit is not the owner.
- INDOUBTST(cvda)
- returns
a CVDA value indicating whether the task-related user exit is enabled
with the INDOUBTWAIT keyword. CVDA values are:
- NOTAPPLIC
- The exit being inquired upon is a global user exit.
- NOWAIT
- The exit is not enabled with the INDOUBTWAIT keyword.
- WAIT
- The exit is enabled with the INDOUBTWAIT keyword.
- NUMEXITS(data-area) (global user exits only)
- returns a halfword binary field indicating the number of global user exit points at which the exit is enabled. A zero is returned if this is a task-related user exit.
- PURGEABLEST(cvda) (task-related user exits only)
- returns
a CVDA value indicating whether the task-related user exit is enabled
with the PURGEABLE keyword. CVDA values are:
- NOTAPPLIC
- The exit being inquired upon is a global user exit.
- NOTPURGEABLE
- Tasks are not purgeable from CICS waits within the task-related user exit.
- PURGEABLE
- Tasks are purgeable from CICS waits within the task-related user exit.
- QUALIFIER(data-area)
- returns,
for a task-related user exit that is enabled for SPI calls, the 8-character
qualifier returned by the exit.
For global user exits and task-related user exits that are not enabled for SPI calls, returns blanks.
- SHUTDOWNST(cvda) (task-related user exits only)
- returns
a CVDA value indicating whether the SHUTDOWN option is enabled for
the exit. SHUTDOWN causes invocation during CICS shutdown, and applies only to task-related
user exits. CVDA values are:
- NOSHUTDOWN
- The exit is not invoked when a CICS shutdown occurs.
- NOTAPPLIC
- This is a global user exit.
- SHUTDOWN
- The exit is invoked when a CICS shutdown occurs.
- SPIST(cvda)
- returns
a CVDA value indicating whether the task-related user exit is enabled
for SPI calls. CVDA values are:
- NOSPI
- The exit is not enabled for SPI.
- NOTAPPLIC
- The exit being inquired upon is a global user exit. This occurs
only when the INQUIRE command is explicitly for a global user exit.
For example:
INQUIRE EXITPROGRAM(abcd) exit(XFCREQ)
If you omit EXIT(XFCREQ), you are inquiring about a task-related user exit. Because all global user exits are, by default, task-related user exits as well, NOSPI is returned.
- SPI
- The exit is enabled for SPI.
- STARTSTATUS(cvda)
- returns
a CVDA value identifying whether the exit is available for execution.
CVDA values are:
- STARTED
- The exit program is available for execution; that is, the START option on an EXEC CICS ENABLE command is still in force.
- STOPPED
- The exit program is not available for execution; that is, the START option has not been issued, or has been revoked by the STOP option on an EXEC CICS DISABLE command.
- TALENGTH(data-area) (task-related user exits only)
- returns a halfword binary field indicating the length of the local (task-related) work area for the exit. Local work areas apply only to task-related user exits. A zero is returned if this is a global user exit.
- TASKSTARTST(cvda) (task-related user exits only)
- returns
a CVDA value indicating whether the TASKSTART option is enabled for
the exit. TASKSTART causes CICS to
invoke the exit at the start and end of every task; it applies only
to task-related user exits. CVDA values are:
- NOTAPPLIC
- This is a global user exit.
- NOTASKSTART
- The exit is not set for invocation at the start and end of every task.
- TASKSTART
- The exit is set for invocation at the start and end of every task.
- USECOUNT(data-area)
- returns
the number of times the exit program has been invoked. Note: The value returned is the total number of times this exit program has been invoked at all the global user exit points and task-related user exit invocation points that the exit program has been enabled and started at.
Conditions
- END
- RESP2 values:
- 2
- There are no more resource definitions of this type.
- ILLOGIC
- RESP2 values:
- 1
- You have issued a START command when a browse of this resource type is already in progress, or you have issued a NEXT or an END command when a browse of this resource type is not in progress.
- INVREQ
- RESP2 values:
- 3
- The exit point identified by EXIT does not exist.
- NOTAUTH
- RESP2 values:
- 100
- The user associated with the issuing task is not authorized to use this command.
- 101
- The user associated with the issuing task is not authorized to access this particular resource in the way required by this command.
- PGMIDERR
- RESP2 values:
- 1
- The exit identified by EXITPROGRAM and ENTRYNAME is not enabled, or the EXIT parameter is missing on an inquiry on a global user exit, or is present on a task-related user exit.