Request information on status of subsystems
| Component: | DSSM | 
| Functional area: | Subsystem management | 
| Domain: | SYSTEM-MANAGEMENT | 
| Privileges: | STD-PROCESSING | 
| Routing code: | R | 
Function
The SHOW-SUBSYSTEM-STATUS command provides users with information on the status of global subsystems made available to all users in class 5 memory (nonprivileged subsystems) and on the status of their local subsystems if they have loaded a local subsystem catalog. 
Errors occurring while the SHOW-SUBSYSTEM-STATUS is executing do not trigger the spin-off mechanism (see the SET-JOB-STEP command). 
The output is sorted according to subsystem names in ascending alphabetical order. Multiple versions of a subsystem are sorted in ascending order of the versions.
During command execution further tasks may set up or clear down connections to the subsystem; as a result, the list of tasks displayed by this command may not reflect the current situation.
The command supports structured output in S variables (see "Output in S variables").
Privileged functions
Systems support can use the command to request information on the status of global subsystems. It then shows:
- which tasks have a connection to the specified subsystem (TSN and TID) 
- the status of the specified subsystems or their versions 
- the number of connections to a specified subsystem since startup 
- “Class 5” for all the subsystems loaded into this memory class 
Format
| SHOW-SUBSYSTEM-STATUS | 
| SUBSYSTEM-NAME = *ALL / *NON-PRIVILEGED-CLASS-5 / <structured-name 1..8 with-wild(24)> ,VERSION = *STD / *ALL / <product-version mandatory-man-corr> / <product-version without-man-corr> | 
Operands
SUBSYSTEM-NAME =
Specifies the name of the subsystem on which information is desired.
SUBSYSTEM-NAME = *ALL
Displays information on all subsystems. 
A version specification in the VERSION operand is not permitted.
SUBSYSTEM-NAME = *NON-PRIVILEGED-CLASS-5
Displays information on all subsystems which do not occupy nonprivileged class 5 memory pages (subsystems with the attribute MEMORY-CLASS=*LOCAL-PRIVILEGED).
SUBSYSTEM-NAME = <structured-name 1..8 with-wild(24)> 
Name of the subsystem on which information is desired. 
Wildcards can be used, in which case an asterisk “*” must be specified twice at the start of the line if no further wildcards are used. 
A version cannot be specified in the VERSION operand when wildcards are used.
VERSION =
Defines the version.
VERSION = *STD
If the version is not specified, or if *STD is explicitly defined, the assignment is subject to the following order:
- The information is prepared by the subsystem that deviates from the status NOT CREATED. 
- If a number of versions are in a status other than NOT CREATED, the output text takes all these into account. 
VERSION = *ALL
Information is to be provided on all available versions of the subsystem in question.
VERSION = <product-version mandatory-man-corr> / <product-version without-man-corr>
Specifies the version.
If a version is specified, the format specified here must be identical to the format used when the subsystem was defined (release and correction status mandatory or not allowed; see also section "SDF syntax representation").
A version specification is not permitted in combination with the operand SUBSYSTEM-NAME=*ALL.
Return codes
| (SC2) | SC1 | Maincode | Meaning | 
|---|---|---|---|
| 0 | CMD0001 | No errors | |
| 1 | ESM0414 | Syntax error: invalid version specified | |
| 32 | CMD2009 | System error: when writing to S variable area | |
| 32 | ESM0360 | System error: XVT or TCB not reachable | |
| 32 | ESM0602 | System error: problems with memory management | |
| 32 | ESM0611 | System error: connection table for this task does not exist | |
| 32 | ESM0671 | System error: when writing to SYSOUT | |
| 64 | ESM0600 | Operand error: no version with *ALL | |
| 64 | ESM0601 | Specified subsystem not found | |
| 64 | ESM0603 | Operand error: No version when wildcards are specified in the subsystem name | |
| 64 | ESM0604 | Operand error: no version with *NON-PRIV-CLASS-5 | |
| 64 | ESM0608 | Subsystem version not found | |
| 64 | ESM0610 | No subsystem with *NON-PRIV-CLASS-5 | |
| 64 | OPS0002 | Command interrupted | |
| 130 | OPS0001 | Command not executed for lack of storage space: try again later! | 
Notes
- The combination of the operands SUBSYSTEM-NAME=*ALL and VERSION=*ALL provides the same scope of information as SUBSYSTEM-NAME=*ALL and VERSION=*STD. 
- The combination of the operands SUBSYSTEM-NAME=<subsystem with-wild> and VERSION=*ALL supplies the same volume of information as SUBSYSTEM-NAME=<subsystem with-wild> and VERSION=*STD. 
- SHOW-SUBSYSTEM-STATUS does not provide any information for subsystems declared with the attributes CONNECTION-SCOPE=*FREE and MEMORY-CLASS= *SYSTEM-GLOBAL. 
 On the other hand, subsystems with the attributes CONNECTION-SCOPE=*FREE and MEMORY-CLASS=*LOCAL-PRIVILEGED or *LOCAL-UNPRIVILEGED are included in the output.
- If there are various versions of a subsystem loaded (as a result of repeated loading in coexistence or exchange mode), privileged users issuing SHOW-SUBSYSTEM-STATUS without specifying a version (VERSION=*STD/*ALL) will be shown status information for all the versions of the subsystem which are currently in any state other than NOT-CREATED. 
- Tasks connected to a global subsystem with CONNECTION-SCOPE=*OPTIMAL are included in the total of all connected tasks but are not explicitly listed with their TID and TSN. 
- If an error occurs on output to SYSOUT (message ESM0671), output in S variables continues as normal if it has been requested. 
 If an error occurs on output in S variables (message ESM0672 or CMD2009), output to SYSOUT continues as normal.
- Interrupting command processing by pressing the [K2] key causes both output to SYSOUT and output in S variables to be interrupted. Return code OPS0002 is generated. 
- If the [K2] interrupt key is pressed at a request for acknowledgment (“ - PLEASE ACKNOWLEDGE”), output to SYSOUT aborts immediately. Output in S variables continues as normal if it has been requested. No message is issued.
- Output to SYSOUT and in S variables cannot be guaranteed to match in full unless the procedure issuing the command has forbidden output interruption by means of the operand INTERRUPTION-ALLOWED=*NO. 
- If a privileged user requires information about a specific subsystem (SUBSYSTEM-NAME= 
 <structured-name 1...8>) and wants output in S variables, the USED-TASK-LIST field may be empty even though it has been generated.
 The SDF-P builtin function SIZE() can be used to define the number of list elements.
- If the subsystem is in a transient state the following information on the current processing status will be issued (substatus). - Status - Substatus - Meaning - IN CREATE / 
 IN RESUME- *INSTALLED - The subsystem is loaded. - *INITIALIZED - The ‘init’ routine was executed. - *CONNECTABLE - The subsystem is ready. - IN DELETE / 
 IN HOLD- WAIT-CLS-CTRL - The ‘close control’ routine was called. DSSM is waiting for it to be concluded. - WAIT-DISCON - DSSM is waiting for the last disconnection (forced delete possible). - WAIT-STOP-COM - No further task is connected, and DSSM is waiting for the ‘stop commission’ routine to be finished. - WAIT-DEINIT - No further task is connected, the ‘deinit’ routine was called, and DSSM is waiting for it to finish. - INSTALLED - The subsystem is loaded but not initialized. - NOT CREATED / 
 NOT RESUMED /
 LOCKED /
 CREATED- *NONE - The subsystem is in the status displayed. This is not a transient state, so there is no further information. Table 158: Information on the SHOW-SUBSYSTEM-STATUS command
Output in S variables
| Output information | Name of the S variable | T | Contents | Condition | 
|---|---|---|---|---|
| Number of connected tasks since starting the subsystem | var(*LIST).CONN-NUM-SINCE-START | I | <integer 0..231-1> | |
| Information on the user address space for nonprivileged subsystems  | var(*LIST).SUBSYS-ADDR-SPACE | S | *RESERVED | |
| Internal status; see table on the dependencies | var(*LIST).SUBSYS-INT-STA | S | INSTALLED  | |
| Name of the subsystem | var(*LIST).SUBSYS-NAME | S | <struc.-name 1..8> | |
| Status of the subsystem | var(*LIST).SUBSYS-STA | S | *CREATED | |
| Displayed only for reasons of compatibility | var(*LIST).SUBSYS-TYPE | S | *GLB | |
| Version of the subsystem | var(*LIST).SUBSYS-VERSION | S | <product-version> | |
| TID of the task currently connected to the subsystem | var(*LIST).USED-TASK-LIST(*LIST).TID | S | <text 8> | |
| TSN of the task currently connected to the subsystem | var(*LIST).USED-TASK-LIST(*LIST).TSN | S | <text 4> | 
The content of the S variable var(*LIST).SUBSYS-IN T-STA depends on the status of the subsystem (S variable var(*LIST).SUBSYS-STA):
| var(*LIST).SUBSYS-STA | var(*LIST).SUBSYS-INT-STA | Meaning | 
|---|---|---|
| *IN-CREATE / *IN-RESUME | INSTALLED | The subsystem is loaded. | 
| INITIALIZED | The ‘Init’ routine was executed. | |
| CONNECTABLE | The subsystem is ready. | |
| *IN-DELETE / *IN-HOLD | WAIT-CLS-CTRL | The ‘Close Control’ routine was called. DSSM is waiting for it to end. | 
| WAIT-DISCON | DSSM is waiting for final disconnection (forced deletion possible). | |
| WAIT-STOP-COM | No tasks remain connected and DSSM is waiting for the ‘Stop Commission’ routine to end. | |
| WAIT-DEINIT | No tasks remain connected, the ‘Deinit’ routine was called and DSSM is waiting for it to end. | |
| INSTALLED | The subsystem is loaded but not initialized. | |
| *CREATED                            | NONE | The subsystem is in the displayed state. Since this is not a transition  | 
Example
/show-subsystem-status subsystem=edt —————————————————————————————————— (1) 
% SUBSYSTEM EDT /V17.0 IS USED BY 1 TASKS ——————————————————— (2) % TSN 0AKV % 7 CONNECTIONS SINCE STARTUP
| (1) | SYSOUT output of information on the subsystem EDT without specification of a version. Only privileged users receive the information reproduced above. Nonprivileged users receive only the following output line: 
 
 | 
| (2) | The output in the example indicates that the EDT subsystem V17.0 is active. |