The INQUIRE_PROGRAM call

INQUIRE_PROGRAM returns information about the attributes of a specified program.

INQUIRE_PROGRAM

DFHPGISX [CALL,]
      [CLEAR,]
      [IN,
      FUNCTION(INQUIRE_PROGRAM),
      [AC_APPLICATION_NAME(block-descriptor),]
      [AC_MAJOR_VERSION(name4),]
      [AC_MICRO_VERSION(name4),]
      [AC_MINOR_VERSION(name4),]
      [AC_PLATFORM_NAME(block-descriptor),]
      [{PROGRAM_NAME(name8 | string | 'string')|
      PROGRAM_TOKEN(name4)},]
      [SHOW_PROGRAMS(PRIVATE|PRIVATE_AND_PUBLIC),]
      [OUT,
      [ACCESS(CICS|NONE|READ_ONLY|USER),]
      [APIST(CICSAPI|OPENAPI),]
      [AVAIL_STATUS(DISABLED|ENABLED),]
      [CEDF_STATUS(CEDF|NOCEDF|NOT_APPLIC),]
      [CONCURRENCY(QUASIRENT|THREADSAFE),]
      [DATA_LOCATION(ANY|BELOW|NOT_APPLIC),]
      [DYNAMIC_STATUS(DYNAMIC|NOT_DYNAMIC),]
      [ENTRY_POINT(name4),]
      [EXECUTION_KEY(CICS|NOT_APPLIC|USER),]
      [EXECUTION_SET(DPLSUBSET|FULLAPI|NOT_APPLIC),]
      [HOLD_STATUS(CICS_LIFE|NOT_APPLIC|TASK_LIFE),]
      [INSTALL_TYPE(AUTO|CATALOG|GROUPLIST|MANUAL|RDO|SYSAUTO),]
      [LANGUAGE_DEDUCED(ASSEMBLER|C370|COBOL|
                          COBOL2|LE370|NOT_APPLIC|NOT_DEDUCED|PLI),]
      [LANGUAGE_DEFINED(ASSEMBLER|C370|COBOL|
                          LE370|NOT_APPLIC|NOT_DEFINED|PLI),]
      [LIBRARY(name8),]
      [LIBRARYDSN(name44),]
      [LOAD_POINT(name4),]
      [LOAD_STATUS(LOADABLE|NOT_APPLIC|NOT_LOADABLE|NOT_LOADED),]
      [LOCATION(CDSA|ECDSA|ELPA|ERDSA|ESDSA|LPA|NONE|RDSA|SDSA),]
      [MODULE_TYPE(MAPSET|PARTITIONSET|PROGRAM),]
      [NEW_PROGRAM_TOKEN(name4),]
      [PROGRAM_ATTRIBUTE(RELOAD|RESIDENT|REUSABLE|TRANSIENT),]
      [PROGRAM_LENGTH(name4),]
      [PROGRAM_TYPE(NOT_APPLIC|PRIVATE|SHARED|TYPE_ANY),]
      [PROGRAM_USAGE(APPLICATION|NUCLEUS),]
      [PROGRAM_USE_COUNT(name4),]
      [PROGRAM_USER_COUNT(name4),]
      [REMOTE_DEFINITION(LOCAL|REMOTE),]
      [REMOTE_PROGID(name8),]
      [REMOTE_SYSID(name4),]
      [REMOTE_TRANID(name4),]
      [SPECIFIED_AMODE(24|31|AMODE_ANY|AMODE_NOT_SPECIFIED|64),]
      [SPECIFIED_RMODE(24|RMODE_ANY|RMODE_NOT_SPECIFIED),]
      RESPONSE(name1 | *),
      REASON(name1 | *)]

This command is threadsafe.

AC_APPLICATION_NAME(block-descriptor)
Specifies the address and length of the name of the application associated with the program. To inquire on private programs for applications deployed on platforms, you must specify the AC_APPLICATION_NAME, AC_MAJOR_VERSION, AC_MINOR_VERSION, AC_MICRO_VERSION, and AC_PLATFORM_NAME fields to provide a complete application context. For more information on block-descriptors, see XPI syntax.
AC_MAJOR_VERSION(name4)
Specifies the application major version in binary.
AC_MICRO_VERSION(name4)
Specifies the application micro version in binary.
AC_MINOR_VERSION(name4)
Specifies the application minor version in binary.
AC_PLATFORM_NAME(block-descriptor)
Specifies the address and length of the name of the platform associated with the program. For more information on block-descriptors, see XPI syntax.
ACCESS(CICS|NONE|READ_ONLY|USER)
Returns a value that indicates the type of storage into which the program has been loaded.
CICS®
CICS-key.
NONE
The program has not been loaded.
READ_ONLY
Read-only.
USER
User-key.
APIST(CICSAPI|OPENAPI)
Returns a value that indicates the API attribute of the installed program definition.
CICSAPI
The program is restricted to use of only the CICS permitted application programming interfaces.
OPENAPI
The program is not restricted to use of only the CICS permitted application programming interfaces. The program must be coded to threadsafe standards and defined with CONCURRENCY(THREADSAFE).
AVAIL_STATUS(DISABLED|ENABLED)
Returns a value that indicates whether the program can be used (ENABLED) or not (DISABLED).
CEDF_STATUS(CEDF|NOCEDF|NOT_APPLIC)
Returns the execution diagnostic facility (EDF) status of the program.
CEDF
When the program is running under the control of the CICS EDF, EDF diagnostic screens are displayed.
NOCEDF
EDF diagnostic screens are not displayed.
NOT_APPLIC
Not applicable. This module is a mapset, a partitionset, or a remote program.
CONCURRENCY(QUASIRENT|THREADSAFE)
Returns a value that indicates the concurrency attribute of the installed program definition.
QUASIRENT
The program is defined as being quasi-reentrant, and can run only under the CICS QR TCB.
THREADSAFE
The program is defined as threadsafe, and can run 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.
Note: For a Language Environment-conforming program, the concurrency as originally defined can be overridden when the program is subsequently loaded.
DATA_LOCATION(ANY|BELOW|NOT_APPLIC)
Returns a value that indicates whether the program can access data located above the 16 MB line.
ANY
The program can handle 31-bit addresses, and can be passed data that is located above or below the 16 MB line.
BELOW
The program can handle only 24-bit addresses, and must therefore be passed only data that is located below the 16 MB line.
NOT_APPLIC
Not applicable. This module is a mapset, a partitionset, or a remote program.
DYNAMIC_STATUS(DYNAMIC|NOT_DYNAMIC)
Returns a value that indicates whether, if the program is the subject of a program-link request, the request can be dynamically routed.
DYNAMIC
If the program is the subject of a program-link request, the CICS dynamic routing program is invoked. Providing that a remote server region is not named explicitly on the SYSID option of the EXEC CICS LINK command, the routing program can route the request to the region on which the program is to run.
NOT_DYNAMIC
If the program is the subject of a program-link request, the dynamic routing program is not invoked.

For a distributed program link (DPL) request, the server region on which the program is to run must be specified explicitly on the REMOTESYSTEM option of the PROGRAM definition, or on the SYSID option of the EXEC CICS LINK command. Otherwise, it defaults to the local region.

For information about the dynamic routing of DPL requests, see Dynamically routing DPL requests.

ENTRY_POINT(name4)
Returns the entry point address of the program entry point address, as returned by a loader domain ACQUIRE_PROGRAM call.
EXECUTION_KEY(CICS|NOT_APPLIC|USER)
Returns the key in which CICS gives control to the program, which determines whether the program can modify CICS-key storage.
CICS
CICS gives control to the program in CICS key. The program is loaded into a CICS dynamic storage area (DSA) above or below the 16 MB line; that is, the CDSA or ECDSA, depending on its residency mode (RMODE) attribute, as defined to the linkage-editor.
NOT_APPLIC
Not applicable. This module is a mapset, a partitionset, or a remote program.
USER
CICS gives control to the program in user key. The program is loaded into a user DSA above or below the 16 MB line; that is, the UDSA or EUDSA, depending on its residency mode (RMODE) attribute, as defined to the linkage-editor.
EXECUTION_SET(DPLSUBSET|FULLAPI|NOT_APPLIC)
Returns a value that indicates whether CICS links to and runs the program as if it were running in a remote CICS region.
DPLSUBSET
CICS links to and runs the program with the API restrictions of a remote DPL program. The program can use only a subset of the CICS API.
FULLAPI
CICS links to and runs the program without the API restrictions of a remote DPL program. The program can use the full CICS API.
NOT_APPLIC
Not applicable. This module is a mapset, a partitionset, or a remote program. (The EXECUTIONSET option of DEFINE PROGRAM applies only to local program definitions. Its purpose is to test programs in a local CICS environment as if they were running as DPL programs.)
HOLD_STATUS(CICS_LIFE|NOT_APPLIC|TASK_LIFE)
Returns a value that indicates how long the program is to remain loaded.
CICS_LIFE
The program remains loaded until CICS is shut down.
NOT_APPLIC
Not applicable. The program is not loaded, or is remote.
TASK_LIFE
The program remains loaded for the lifetime of the task.
INSTALL_TYPE(AUTO|CATALOG|GROUPLIST|MANUAL|RDO|SYSAUTO)
Returns the method that was used to install the PROGRAM resource definition.
AUTO
Autoinstall.
CATALOG
The CICS global catalog, after a restart.
GROUPLIST
The CICS startup grouplist.
MANUAL
The program is a CICS internal module explicitly defined to the Program Manager by another CICS component.
RDO
RDO commands.
SYSAUTO
System autoinstall (that is, autoinstalled by CICS without calling the autoinstall user program). The program might be a CICS internal module or, for example, a first phase PLTPI program.
LANGUAGE_DEDUCED(ASSEMBLER|C370|COBOL|COBOL2|LE370| NOT_APPLIC|NOT_DEDUCED|PLI)
Returns the language deduced by CICS for the program. COBOL is OS/VS COBOL, which cannot run under this CICS version, and COBOL2 is either Enterprise COBOL or VS COBOL II.
LANGUAGE_DEFINED(ASSEMBLER|C370|COBOL|LE370| NOT_APPLIC|NOT_DEFINED|PLI)
Returns the programming language specified on the resource definition.
LIBRARY(name)
Returns the 8-character name of the LIBRARY resource from which this program was loaded. This field is blank if the program has not been loaded, or if the LPASTATUS is LPA (indicating that the program has been loaded from the LPA).
LIBRARYDSN(name44)
Returns the 44-character name of the data set from which the program was loaded. This field is blank if the program has not been loaded, or if the LPASTATUS is LPA (indicating that the program has been loaded from the LPA).
  • If the program was loaded from an installed LIBRARY, the LIBRARY and LIBRARYDSN names will be returned.
  • If the program was loaded from a LIBRARY that has been disabled, the LIBRARY name will be returned but the LIBRARYDSN will be blank.
  • If the program was loaded from a LIBRARY that has been discarded, both LIBRARY and LIBRARYDSN will be blank.
LOAD_POINT(name4)
Returns the load point address of the program, as returned by a loader domain ACQUIRE_PROGRAM call.
LOAD_STATUS(LOADABLE|NOT_APPLIC|NOT_LOADABLE|NOT_LOADED)
Returns a value that indicates whether or not the program can be loaded.
LOADABLE
The program is loadable.
NOT_APPLIC
Not applicable. The program is remote.
NOT_LOADABLE
CICS has tried to load the program and failed; the program is not in the library.
NOT_LOADED
CICS has not yet tried to load the program.
LOCATION(CDSA|ECDSA|ELPA|ERDSA|ESDSA|LPA|NONE|RDSA|SDSA)
Returns a value that indicates where the most recently loaded copy of the program resides.
CDSA
The CICS dynamic storage area
ECDSA
The extended CICS dynamic storage area
ELPA
The extended link pack area
ERDSA
The extended read-only dynamic storage area
ESDSA
The extended shared dynamic storage area
LPA
The link pack area
NONE
The program has not been loaded.
RDSA
The read-only dynamic storage area
SDSA
The shared dynamic storage area
MODULE_TYPE(MAPSET|PARTITIONSET|PROGRAM)
Returns the type of program resource.
NEW_PROGRAM_TOKEN(name4)
Returns a token that can be used to identify the named program.
name4
The name of a location to receive a 4-byte token that identifies this program.

If PROGRAM_NAME is specified on the request, NEW_PROGRAM_TOKEN is set to a program token that can be used on subsequent requests for the same program. If PROGRAM_TOKEN is specified on the request, NEW_PROGRAM_TOKEN is set to the same value.

PROGRAM_ATTRIBUTE(RELOAD|RESIDENT|REUSABLE|TRANSIENT)
Returns the residency status of the program; that is, when its storage is released.
RELOAD
The program is not reusable, and therefore several copies might be loaded. A copy is removed from storage when a RELEASE_PROGRAM call (for that copy) is issued.
RESIDENT
There is a single copy of the program that is not removed from storage unless deleted. RESIDENT programs must be at least quasi-reentrant. Any program of PROGRAM_TYPE SHARED is RESIDENT by default.
REUSABLE
Similar to RESIDENT, except that CICS can remove a REUSABLE program that is not in use from storage, for storage optimization reasons.
TRANSIENT
Similar to RESIDENT, except that a TRANSIENT program is removed from storage as soon as its user count drops to zero.
PROGRAM_LENGTH(name4)
Returns the length of the program, in bytes, expressed in binary.
PROGRAM_NAME(name8 | string | 'string')
Specifies the name of the program to be queried.
name8
The name of a location that contains an 8-byte program name.
string
A string of characters that name the program.
'string'
A string of characters in quotation marks. The string length is set to 8 by padding with blanks or truncating.
PROGRAM_TOKEN(name4)
Specifies a token that identifies the program to be queried.
name4
The name of a location that contains a 4-byte token that was obtained from a previous INQUIRE_PROGRAM call.
PROGRAM_TYPE(NOT_APPLIC|PRIVATE|SHARED|TYPE_ANY)
Returns a value that indicates where the next new copy of the program is to be loaded from.
NOT_APPLIC
Not applicable. The program is remote.
PRIVATE
The program is to be loaded from the DFHRPL or dynamic LIBRARY concatenation.. A PRIVATE program need not be reentrant, and is given only limited protection against unauthorized overwriting. The degree of protection depends on the type of dynamic storage area into which the program is loaded (see the description of the PROGRAM_TYPE option of the DEFINE_PROGRAM call).
SHARED
The program is to be loaded from the link pack area (LPA). SHARED programs must be reentrant, and are protected.

The next time a NEWCOPY or PHASEIN is received, an LPA copy of the program is used if it is available. If no LPA version is available, the program is loaded from DFHRPL or dynamic LIBRARY concatenation.

TYPE_ANY
Either the copy in DFHRPL or a dynamic LIBRARY concatenation, or the LPA copy of the program can be used, although preference is given to the LPA copy.
PROGRAM_USAGE(APPLICATION|NUCLEUS)
Returns a value that indicates whether the program is used as a CICS nucleus program, or as a user application program.
PROGRAM_USE_COUNT(name4)
Returns the number of different users that have invoked the program.
PROGRAM_USER_COUNT(name4)
Returns the current number of users of the program.
REMOTE_DEFINITION(LOCAL|REMOTE)
Returns a value that indicates whether this program is a local or a remote resource. If it is a remote resource, CICS treats requests to link to the program as distributed program link (DPL) requests, and ships them to the remote region.
REMOTE_PROGID(name8)
Returns the name by which the program is known in the remote CICS region, if the program is a remote resource. If REMOTESYSTEM was specified on the PROGRAM definition, and REMOTENAME omitted, the remote name will be the same as the local name (that is, REMOTE_PROGID will default to the value of PROGRAM_NAME).
REMOTE_SYSID(name4)
Returns the name of the remote CICS region that owns the program, if the program is a remote resource.
REMOTE_TRANID(name4)
Returns the name of the transaction that the remote CICS attaches, and under which it runs the program, if the program is a remote resource.
SHOW_PROGRAMS(PRIVATE|PRIVATE_AND_PUBLIC)
If application context fields are specified for INQUIRE_PROGRAM, SHOW_PROGRAMS defines the scope of the search.
PRIVATE
Searches only for private programs.
PRIVATE_AND_PUBLIC
Searches for private programs first, then public programs.
SPECIFIED_AMODE(24|31|AMODE_ANY|AMODE_NOT_SPECIFIED|64)
Returns the addressing mode that was specified on a DEFINE_PROGRAM call.
SPECIFIED_RMODE(24|RMODE_ANY|RMODE_NOT_SPECIFIED)
Returns the residency mode (that is, whether the program should be loaded above or below the 16 MB line) that was specified on a DEFINE_PROGRAM call.

RESPONSE and REASON values for INQUIRE_PROGRAM

RESPONSE REASON
OK None
EXCEPTION PROGRAM_NOT_DEFINED_TO_LD
  PROGRAM_NOT_DEFINED_TO_PG
  APP_CONTEXT_NOT_FOUND
DISASTER ABEND
  LOCK_ERROR
INVALID INVALID_PROGRAM_TOKEN
KERNERROR None
PURGED None