Zusätzliche Auftragseingänge definieren
Funktionsbeschreibung
Mit dieser Anweisung ist es möglich, für ein Subsystem in einem SSD-Object mehr als die bereits bei SET-SUBSYSTEM-ATTRIBUTES angegebenen und maximal erlaubten 100 Auftragseingänge zu definieren.
Mit jeder Anweisung ADD-SUBSYSTEM-ENTRIES (sie kann für ein- und dasselbe Subsystem mehrmals ausgeführt werden) können bis zu 100 weitere Auftragseingänge für ein einzelnes Subsystem definiert werden.
ADD-SUBSYSTEM-ENTRIES wird zurückgewiesen, wenn zuvor die Anweisung START-SSD-CREATION nicht ausgeführt wurde.
Die Anweisung wird abgewiesen, wenn das angegebene Subsystem bei der Anweisung SET-SUBSYSTEM-ATTRIBUTES oder der Anweisung MODIFY-SUBSYSTEM-ATTRIBUTES mit dynnamisch zu versorgenden Einsprungstellen (*BY-PROGRAM(...)) definiert wurde.
Die Ausführung der Anweisung wird abgebrochen, wenn
das mit TO-SUBSYSTEM und VERSION bestimmte Subsystem nicht im aktuellen SSD-Object gefunden wird
ein bereits existierender Auftragseingang ein zweites Mal definiert werden soll
Es wird eine Fehlermeldung ausgegeben.
Format
ADD-SUBSYSTEM-ENTRIES | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operandenbeschreibung
TO-SUBSYSTEM = <structured-name 1..8>(...)
Vereinbart Name und Version des Subsystems, für das weitere Auftragseingänge definiert werden sollen.
VERSION = <c-string 3..8> / <text 3..8>
Die Version des Subsystems ist im Format „[V][m]m.n[aso]“ zu vereinbaren, wobei die Textteile folgende Bedeutung besitzen:
mm: Hauptversion (numerisch)
n: Nachtragsversion (numerisch)
aso: Änderungsstand (a: Buchstabe, Freigabestand; so: numerisch, Korrekturstand)
SUBSYSTEM-ENTRIES =
Vereinbart weitere Einsprungstellen (Auftragseingänge), die mit dem Subsystem verbunden sind. Es können bis zu 100 Auftragseingänge pro Anweisung vereinbart werden.
SUBSYSTEM-ENTRIES = list-poss(100): <text 1..8>
Vereinbart durch Angabe des Namens der Einsprungstelle maximal 100 Auftragseingänge, deren Typ jeweils in den Unterstrukturen definiert werden muss.
MODE =
Legt den Typ eines vereinbarten Auftragseingangs für das Subsystem fest.
MODE = *LINK
Voreinstellung: der Auftragseingang kann nicht über indirektes Linkage erreicht werden, sondern nur über eine CONNECT-Beziehung mittels eines externen Binder-Symbols.
Bei verschiedenen Versionen des gleichen Subsystems, die das gleiche externe Binder-Symbol nutzen, stellt DSSM automatisch den Anschluss an die höchste geladene Version des Subsystems her.
MODE = *ISL(...)
Der Auftragseingang wird durch indirekte Verbindung über System Procedure Linkage (nur für privilegierte Subsysteme) erreicht. Wird zusätzlich noch eine Funktions- und Versionsnummer der ISL-Einsprungstelle spezifiziert, darf sich die Kombination aus Name der Einsprungstelle, Funktions- und Versionsnummer nicht mit einer anderen Kombination für die verschiedenen Subsysteme eines Kataloges oder die verschiedenen Versionen des gleichen Subsystems (bei Angabe von VERSION-COEXISTENCE=*ALLOWED, siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES) decken.
Bei ungleichen Subsystemen, deren Auftragseingang über die selbe ISL-Einsprungstelle erreicht werden soll, muss zur eindeutigen Unterscheidung die Funktions- und Versionsnummer angegeben werden.
Bei verschiedenen Versionen des gleichen Subsystems, die dieselbe ISL-Einsprungstelle nutzen (ohne Angaben zur Funktions- oder Versionsnummer), stellt DSSM automatisch den Anschluss an die höchste geladene Version des Subsystems her.
Bei verschiedenen Versionen des gleichen Subsystems, die dieselbe ISL-Einsprungstelle nutzen und deren Funktions- und Versionsnummer ungleich *NONE ist, ist die Auswahl, an welche Version der Anschluss erfolgen soll, von der Funktions- und Versionsnummer abhängig, die im Standard Header der Parameterliste des Aufrufers hinterlegt ist.
Die Angabe CONNECTION-ACCESS=*ALL (siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES) ist für ISL-Einsprungstellen nicht zulässig.
FUNCTION-NUMBER =
Vereinbart, ob eine bestimmte Funktions- und Versionsnummer der ISL-Einsprungstelle angesprochen werden soll, da die gleiche ISL-Einsprungstelle von verschiedenen Funktionen genutzt werden kann.
FUNCTION-NUMBER = *NONE
Voreinstellung: es soll keine bestimmte Funktions- oder Versionsnummer angesprochen werden.
FUNCTION-NUMBER = <integer 0..255>(...)
Nummer der ISL-Einsprungstelle. Die Version ist in der folgenden Unterstruktur zu benennen.
FUNCTION-VERSION = <integer 1..255>
Version der spezifizierten ISL-Funktionsnummer.
MODE = *SVC(...)
Der Auftragseingang wird durch indirekte Verbindung über Supervisor Call (SVC) erreicht.
Wird zusätzlich noch eine Funktions- und Versionsnummer der SVC-Einsprungstelle spezifiziert, darf sich die Kombination aus SVC-Nummer, Funktions- und Versionsnummer nicht mit einer anderen Kombination für die verschiedenen Subsysteme eines Kataloges oder die verschiedenen Versionen des gleichen Subsystems (bei Angabe von VERSION-COEXISTENCE=*ALLOWED, siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES) decken.
Bei ungleichen Subsystemen, deren Auftragseingang über den selben SVC erreicht werden soll, muss zur eindeutigen Unterscheidung die Funktions- und Versionsnummer angegeben werden.
Bei verschiedenen Versionen des gleichen Subsystems, die den selben SVC nutzen (ohne Angaben zur Funktions- oder Versionsnummer), stellt DSSM automatisch den Anschluss an die höchste geladene Version des Subsystems her.
Bei verschiedenen Versionen des gleichen Subsystems, die den selben SVC nutzen und deren Funktions- und Versionsnummer ungleich *NONE ist, ist die Auswahl, an welche Version der Anschluss erfolgen soll, von der Funktions- und Versionsnummer abhängig, die im Standardheader der Parameterliste des Aufrufers hinterlegt ist.
Bei Angabe dieses Operandenwertes sollte der Operand CONNECTION-ACCESS vorzugsweise mit dem Wert *SYSTEM statt *ALL belegt werden (siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES).
NUMBER = <integer 0..255>
Nummer des SVCs, über den der Auftragseingang erreicht wird. In Verbindung mit CONNECTION-ACCESS=*ALL (siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES) ist die Verwendung einer SVC-Nummer größer 191 nicht zulässig.
CALL-BY-SYSTEM-EXIT =
Legt fest, ob die angegebene SVC-Nummer von System-Exit-Routinen aus aufgerufen werden darf.
CALL-BY-SYSTEM-EXIT = *ALLOWED
Voreinstellung: der Aufruf der angegebenen SVC-Nummer ist für System-Exit-Routinen zulässig.
CALL-BY-SYSTEM-EXIT = *FORBIDDEN
Der Aufruf der angegebenen SVC-Nummer ist für System-Exit-Routinen nicht zulässig.
FUNCTION-NUMBER =
Vereinbart, ob eine bestimmte Funktions- und Versionsnummer der SVC-Einsprungstelle angesprochen werden soll, da die gleiche SVC-Einsprungstelle von verschiedenen Funktionen genutzt werden kann.
FUNCTION-NUMBER = *NONE
Voreinstellung: es soll keine bestimmte Funktions- oder Versionsnummer angesprochen werden.
FUNCTION-NUMBER = <integer 0..255>(...)
Nummer der SVC-Einsprungstelle. Die Version ist in der folgenden Unterstruktur zu benennen.
FUNCTION-VERSION = <integer 1..255>
Version der spezifizierten SVC-Funktionsnummer.
MODE = SYSTEM-EXIT(...)
Der Auftragseingang wird durch indirekte Verbindung über System-Exit-Routinen erreicht.
In Verbindung mit CONNECTION-ACCESS=*ALL (siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES) ist die Verwendung dieses Operanden nicht zulässig.
NUMBER = <integer 0..127>
Nummer der System-Exit-Routine.
CONNECTION-ACCESS =
Vereinbart die Zugriffsberechtigung (Privilegierung) für das Subsystem.
CONNECTION-ACCESS = *ALL
Voreinstellung: privilegierte und nicht-privilegierte Programmläufe sind zugriffsberechtigt.
In Verbindung mit MODE=*SYSTEM-EXIT, MODE=*ISL und MODE=*SVC (mit einer SVC-Nummer größer 191) ist die Verwendung dieses Operandenwertes nicht zulässig (siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES).
CONNECTION-ACCESS = *SYSTEM
Nur privilegierte Programmläufe sind zugriffsberechtigt.
CONNECTION-ACCESS = *SIH
Nur Tasks, die im Funktionszustand SIH laufen, sind zugriffsberechtigt.
Das aufgerufene Subsystem läuft ebenfalls im Funktionszustand SIH, d.h. es ist nicht unterbrechbar.
Die Angabe dieses Operandenwertes ist nur für Subsysteme zulässig, deren Auftragseingang definiert wird über
System Procedure Linkage (MODE=*ISL(FUNCTION-NUMBER=*NONE))
CONNECTION-SCOPE=*OPTIMAL
MEMORY-CLASS=*SYSTEM-GLOBAL(SUBSYSTEM-ACCESS=*SYSTEM)
CONNECTION-SCOPE =
Bezeichnet das Ereignis, das die automatische Auflösung des Anschlusses an den angegebenen Subsystem-Auftragseingang hervorruft.
CONNECTION-SCOPE = *TASK
Voreinstellung: der Anschluss wird bei Taskbeendigung aufgehoben.
CONNECTION-SCOPE = *PROGRAM
Der Anschluss wird spätestens bei Programmbeendigung aufgehoben.
Zusammen mit MEMORY-CLASS=*LOCAL-UNPRIVILEGED darf nur CONNECTION-SCOPE=*PROGRAM angegeben werden (siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES).
Die Angabe dieses Operandenwertes wird für Subsysteme empfohlen, die mit SUBSYSTEM-ACCESS=*LOW/*HIGH deklariert wurden.
CONNECTION-SCOPE = *FREE
DSSM soll keine Kontrolle von Anschlüssen zu diesen Auftragseingängen durchführen. Der Anschluss wird - außer bei einer expliziten Anforderung - nicht automatisch aufgelöst. Um Probleme oder mögliche Fehler beim Entladen des Subsystems zu vermeiden, müssen die Anschlüsse vom Subsystem selbst verwaltet werden.
CONNECTION-SCOPE = *CALL
Nach Rückkehr aus diesem Auftragseingang führt DSSM automatisch die Auflösung der Anschlüsse durch.
Dieser Operandenwert steht nur für Subsysteme zur Verfügung, deren Auftragseingang über System Procedure Linkage (ISL) oder Supervisor Call (SVC) definiert wird.
CONNECTION-SCOPE = *OPTIMAL
Das Subsystem wird deaktiviert bzw. angehalten, wenn keine Task mehr Anschluss zu diesem Auftragseingang hat.
Eine Routine, deren Einsprungstelle mit *OPTIMAL definiert wird, muss mit RETURN beendet werden.
Wird ein Auftragseingang eines Subsystems mit CONNECTION-SCOPE=*OPTIMAL definiert, sollten alle seine Auftragseingänge im Subsystemkatalog mit MODE=*LINK definiert werden.
Während ein Subsystem deaktiviert oder angehalten wird, wird kein Aufruf des Subsystems mit CONNECTION-SCOPE=*OPTIMAL akzeptiert. Ausnahme: das Subsystem wurde mit CREATION-TIME=*AT-SUBSYSTEM-CALL definiert und die aufrufende Task ist bereits mit ihm verbunden (siehe Anweisung SET-SUBSYSTEM-ATTRIBUTES).
FIRST-CONNECTION =
Bestimmt, ob der Erst-Anschluss der Task an den angegebenen Auftragseingang des Subsystems erlaubt ist. Mindestens ein Auftragseingang eines Subsystems muss mit FIRST-CONNECTION = *ALLOWED definiert werden.
FIRST-CONNECTION = *ALLOWED
Voreinstellung: Der Erst-Anschluss an den angegebenen Auftragseingang ist erlaubt.
FIRST-CONNECTION = *FORBIDDEN
Der Anschluss an den angegebenen Auftragseingang über SVC oder ISL ist nicht erlaubt, wenn die Task nicht bereits an einen anderen Auftragseingang des Subsystems angeschlossen ist.
Die Angabe dieses Operandenwertes ist für Auftragseingänge, die mit MODE=*LINK/*SYSTEM-EXIT oder CONNECTION-ACCESS=*SIH definiert wurden, nicht erlaubt.