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 HOLDWAIT-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.
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. |