Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Anschluss herstellen und wieder aufheben

Der Anschluss an den Auftragseingang eines Subsystems erfolgt durch eine der folgenden Möglichkeiten:

  1. implizit und global durch Bindebeziehung; dies ist nur zu bereits geladenen Subsystemen oder zwischen gleichzeitig geladenen Subsystemen möglich

  2. implizit und taskspezifisch

    • durch eine subsystemspezifische SVC-, ISL- bISL- bzw. System-Exit-Routine

    • bei nicht-privilegierten Subsystemen durch DBL-Schnittstellen (BIND-Makro, START-PROGRAM, LOAD-PROGRAM und START-<produktname>, Autolink)

  3. explizit und taskspezifisch durch systeminterne Makros ($ESMCON und $ESMCCS)

Der Anschluss an ein Subsystem umfasst:

  1. Erzeugen einer Subtask, wenn entsprechender systeminterner Aufruf ($ESMCCS)

  2. Anschließen an den Memory Pool, falls erforderlich

  3. Wenn ein Subsystem mit MEMORY-CLASS=*BY-SLICE definiert wurde, wird der private Bereich in den lokalen Adressraum (Benutzeradressraum) kopiert. Wird das Subsystem erstmals gestartet, informiert DSSM das Subsystem BLSSERV darüber, dass mit dem Makro VSVI1 auf die Kopie im privaten Benutzeradressraum zugegriffen werden kann.

  4. Übergeben der Adresse an die Task oder Aufruf des Subsystemcodes

  5. Setzen des subsystemspezifischen Anschlussmerkers

  6. Erhöhen des taskspezifischen Anschlusszählers (Ausnahme: bei Definition des Subsystems mit dem Attribut CONNECTION-SCOPE=*FREE)

Es kann auch ein Anschluss für Auftragseingänge hergestellt werden, die das Subsystem selbst verwaltet.

Das Aufheben eines Anschlusses erfolgt durch eine der folgenden Möglichkeiten:

  • implizit und taskspezifisch

    • durch Programm- bzw. Task-Beendigung

    • nach Rücksprung aus dem Subsystem-Auftragseingang, wenn dieser mit dem Attribut MODE=*SVC/*ISL und CONNECTION-SCOPE=*CALL definiert wurde

    • bei der Deaktivierung von Subsystemen mit CONNECTION-SCOPE=*OPTIMAL

  • explizit und taskspezifisch durch einen systeminternen Makroaufruf bei Beendigung einer SVC-Routine ($ESMDCN)

  • implizit und subsystemspezifisch bei Deaktivierung eines Subsystems, das mit dem Attribut CONNECTION-SCOPE=*FREE definiert wurde

Das Aufheben einer Beziehung enthält:

  • Weghängen vom Memory Pool

  • Wenn das Subsystem mit MEMORY-CLASS=*BY-SLICE definiert wurde, wird der Anteil aus dem Benutzeradressraum der angeschlossenen Task entladen.
    DSSM informiert das Subsystem BLSSERV beim Aufheben der letzten Verbindung darüber, dass nicht mehr auf diesen privaten Anteil zugegriffen werden kann.

  • Zurücksetzen des taskspezifischen Anschlussmerkers

  • Erniedrigen des subsystemspezifischen Anschlusszählers (Ausnahme: bei Definition des Subsystems mit dem Attribut CONNECTION-SCOPE=*FREE)

  • „Function detach“ bei explizitem Aufruf

Die beim Anschluss an die Task gelieferte Adresse kann nicht mehr verwendet werden.