Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

START-SUBSYSTEM

&pagelevel(3)&pagelevel

Activate subsystem

Component:

DSSM

Functional area:

Subsystem management

Domain:

SYSTEM-MANAGEMENT

Privileges:

OPERATING
SUBSYSTEM-MANAGEMENT

Routing code:

R

Function

This command enables systems support staff to activate any required subsystem.
The following information from the dynamic subsystem catalog is used for activating the subsystem:

  • information on subsystem loading and linking;

  • information on the initialization/deinitialization and termination of job relations;

  • information on call points, ancillary components and operational dependencies (see the appropriate SSCM statements in the “Subsystem Management” manual [49]).

The command is rejected if

  • the subsystem is not found in the dynamic subsystem catalog

  • another version of the subsystem already exists and the coexistence is not allowed (see the VERSION-PARALLELISM operand)

  • subsystems on which the subsystem to be activated depends are not loaded

  • a required file (e.g. message file, library) cannot be found.

A corresponding message informs the systems support staff as to the acceptance or rejection of the command. By means of the RESET=*YES operand, initialization can be forced for those subsystems that are in the process of being deactivated. Any number of START-SUBSYSTEM commands can be issued under a privileged user ID of system’s support, in various tasks unless this is prohibited by the parameters specified during definition of the subsystem.

Depending on how the subsystem is defined (SSCM statement SET-/MODIFY-SUBSYSTEM-ATTRIBUTES, SUBSYSTEM-LOAD-MODE operand), it can be activated in various different ways:

  • SUBSYSTEM-LOAD-MODE = *STD
    The BLS is called in STD run mode and loads the subsystem as an object module.

  • SUBSYSTEM-LOAD-MODE = *ADVANCED
    The BLS is called in ADVANCED run mode and loads the subsystem as a link and load module (LLM).

  • SUBSYSTEM-LOAD-MODE = *ANY
    The BLS is called in STD run mode and loads the subsystem as an object module. If an error occurs while the subsystem is being loaded, the BLS is called again, this time in ADVANCED run mode, and the subsystem is loaded as a link and load module (LLM). If the first call to the BLS fails, a BLS error message is output on the console.

Format

START-SUBSYSTEM

SUBSYSTEM-NAME = <structured-name 1..8>

,VERSION = *STD / <product-version mandatory-man-corr> / <product-version without-man-corr> / *HIGHEST

,SUBSYSTEM-PARAMETER = *NONE / <c-string 1..254>

,RESET = *NO / *YES

,SYNCHRONOUS = *NO / *YES

,VERSION-PARALLELISM = *NONE / *EXCHANGE-MODE(...) / *COEXISTENCE-MODE


*EXCHANGE-MODE(...)



|

SUBSYSTEM-PARAMETER = *NONE / <c-string 1..254>

,MONJV = *NONE / <filename 1..54 without-gen-vers>

Operands

SUBSYSTEM-NAME = <structured-name 1..8>
Name of the subsystem to be activated.

VERSION = *STD / <product-version mandatory-man-corr> / <product-version without-man-corr> / *HIGHEST 
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 "SDF syntax representation").

VERSION = *STD

If several versions exist for the specified subsystem, and neither a version nor *STD is explicitly specified, the subsystem that was declared with the start attribute CREATION-TIME=*AT-SUBSYSTEM-CALL (see the SSCM statement SET-SUBSYSTEM-ATTRIBUTES in the “Subsystem Management” manual [49]) is loaded. If this condition is not met, the lowest version for this subsystem that is stored in the static subsystem catalog is selected.


Exception

If a version of a subsystem is to be activated automatically with the first SVC call, then this version is taken as the standard version.

VERSION = *HIGHEST
Selects the highest version of the subsystem entered in the static subsystem catalog.

SUBSYSTEM-PARAMETER = *NONE / <c-string 1..254>
Specifies whether special parameters which can be interpreted only by the specified subsystem may be processed.

RESET =
Determines the behavior and urgency of command processing.

RESET = *NO
If the subsystem concerned is in the process of being deactivated, the command is rejected until this blocking operation has terminated.

RESET = *YES
The command is accepted regardless of an ongoing deactivation operation and the subsystem or components of it are initialized (see also Notes).
The version parameter is mandatory for this operand.

SYNCHRONOUS =
Permits a choice between synchronous and asynchronous processing.

SYNCHRONOUS = *NO
The command is to be processed asynchronously, i.e. there is no need to wait for it to execute. Once the syntax of the command has been checked, the calling task is sent message ESM0216. No error messages relating to the execution of the command are output.

SYNCHRONOUS = *YES
The system waits for execution of the command.
Accompanying error messages are output.
In the event of a version change, this specification applies only to the new version. Deactivation of the other, “old” version always runs asynchronously.

VERSION-PARALLELISM =
Specifies whether different versions of the same subsystem can be active at the same time.

VERSION-PARALLELISM = *NONE
The coexistence of different versions of subsystems - irrespective of what is specified in the definition - is not to be allowed. If the status of any version is not NOT-CREATED, the activation will be rejected.

VERSION-PARALLELISM = *EXCHANGE-MODE(...)
Two versions of a subsystem may coexist temporarily. Activation is permitted if neither or only one of the subsystem versions is in the “CREATED” state. If two versions are already in this state, implicit deactivation is initiated for the last version started.
If a subsystem version is in the LOCKED state, DSSM handles it as NOT-CREATED.
The command with this operand is rejected if

  • the version to be replaced is defined with HOLD=*NO but without a CLOSE-CTRL routine

  • the command MODIFY-SUBSYSTEM-PARAMETER CHANGE-STATE=*NO was used for the version to be replaced

  • RESET=*NO is specified at the same time

  • the version is not in the CREATED, NOT CREATED or LOCKED state.

SUBSYSTEM-PARAMETER = *NONE / <c-string 1..254>
Specifies whether special parameters that can only be evaluated by the specified subsystem version are processed.

VERSION-PARALLELISM = *COEXISTENCE-MODE
Permits unrestricted coexistence of two or more versions of the same subsystem, provided that this was permitted for all versions involved in the SSCM statement SET-SUBSYSTEM-ATTRIBUTES.

MONJV = *NONE / <filename 1..54 without-gen-vers>
Specifies the name of a monitoring job variable. The monitor job variable indicates whether the subsystem is active, halted, interrupted or locked. The specified job variable only becomes the monitoring job variable if the subsystem is not yet started. The monitor job variable can have the following contents:

Byte

Length

Contents

Values

1

3

Status

$R (running) /
$A (abnormal end) /
$L (loaded) /
$T (terminate)

4

1

Reserved

0

5

4

TSN

???? (four question marks)

9

4

Home Catid


13

4

Reserved


17

1

Type

J / P / S

18

53

Reserved


71

3

Session number


74

8

Name of the subsystem


82

7

Version of the subsystem


89

15

Condition of the subsystem

for $R: created
for $A: abnormal end / locked
for $L: in create
for $T: not created / not resumed / in delete / in resume / in hold

104

24

Unused


128

127

Reserved for subsystem users


Return codes

(SC2)

SC1

Maincode

Meaning


0

CMD0001

No error

1

0

CMD0001

No action necessary; subsystem already active


1

ESM0414

Syntax error: invalid version specified


32

ESM0224

Command not processed


32

ESM0228

Command terminated abnormally

Notes

  • Subsystems generally have manifold relations (dependency relations, loading relations) to other subsystems.
    In order to ensure the performance of the individual subsystem, these relations must be taken into account. DSSM attempts to avoid potential conflicts that might arise from the user’s requests and therefore rejects corresponding commands. Actions such as the installation of missing subsystems or unloading dependent subsystems are not performed.

    If, however, the user also generates complex subsystems using the CHECK-REFERENCE=*NO statement (see the SSCM statement SET-SUBSYSTEM-ATTRIBUTES), DSSM executes the requested functions despite possible conflicts: The START-SUBSYSTEM command loads the specified subsystem, even if a subsystem with which there are defined relations has not yet been completely loaded.

  • In order to ensure a high degree of parallelism and data integrity, time-consuming administrative jobs are not executed under the control of the calling task but are transferred to a DSSM task.
    As a rule only the check of the requested function is performed synchronously (i.e. in conjunction with a wait state for the calling task). However, DSSM performs the actual processing asynchronously and independently of the calling task.

  • After the STOP-SUBSYSTEM command, START-SUBSYSTEM is rejected if DSSM has not yet been able to complete the “load subsystem” action. However, if the RESET=*YES operand is specified, the systems support staff can force an unconditional loading of the subsystem. There is no wait for the completed processing of a STOP-SUBSYSTEM command.
    In this case, the initialization routine is activated. The subsystem in question, which is notified of the RESET, can specify the scope of this routine itself (complete initialization, partial initialization, no initialization).


    Exception

    If the subsystem in question is in the “IN-DELETE” status but has already been deinitialized, processing of “unload subsystem” is not aborted despite RESET=YES. The START-SUBSYSTEM command is rejected if the subsystem has reached the status “NOT-CREATED” and all resources have been released.

  • If two versions of a subsystem are to be exchanged, the following points must be observed with regard to the use of the RESET=*YES parameter:

  • If version A is in the IN-DELETE state and version B in the CREATED state, RESET=*YES can be specified for A only if coexistence was permitted for both versions at the definition (SSCM).

  • If both versions are in the IN-DELETE state, RESET=*YES can be specified for one of them if the version involved was defined with RESET=*ALLOWED, VERSION-EXCHANGE=*ALLOWED.

  • Restart (i.e. calling the INIT routine for subsystems defined with RESTART-REQUIRED=*YES) is not possible, since this may lead to illegal coexistence.