Ausführbares Programm (LLM, Lade-, Bindemodul) laden
Komponente: | BLSSERV |
Funktionsbereich: | Programm-Steuerung |
Anwendungsbereich: | PROGRAM |
Privilegierung: | STD-PROCESSING |
Funktionsbeschreibung
Das Kommando LOAD-EXECUTABLE-PROGRAM hat zwei Funktionen:
Es ruft den dynamischen Bindelader DBL auf und definiert die Primäreingabe. Der DBL bindet dann LLMs (link and load modules) oder OMs (object modules) zu einer Ladeeinheit und lädt diese in den Hauptspeicher.
Ein LLM, das mit dem BINDER bereits zu einer Ladeeinheit gebunden und in einer PAM-Datei abgespeichert wurde (PAM-LLM), lädt der DBL nur in den Hauptspeicher.Es ruft den statischen Lader ELDE auf. Der ELDE lädt dann ein Programm (Lademodul) in den Hauptspeicher, das vom Binder TSOSLNK gebunden wurde.
Die geladene Ladeeinheit bzw. das geladene Programm wird erst bei Aufruf des Kommandos RESUME-PROGRAM gestartet.
Wenn der Benutzer die Ladeeinheit bzw. das Programm laden und starten möchte, kann er an Stelle der Kommandos LOAD-EXECUTABLE-PROGRAM und RESUME-PROGRAM das Kommando START-EXECUTABLE-PROGRAM verwenden.
Bei Operanden, die den Default-Wert *DBL-DEFAULT besitzen, kann der Benutzer die DBL-Voreinstellungen, die zu Beginn der Task gelten, mit dem Kommando MODIFY-DBL-DEFAULTS verändern. Die Einstellung kann dabei für den Aufruf mit den Kommandos LOAD- bzw. START-EXECUTABLE-PROGRAM sowie für den Makroaufruf BIND getrennt erfolgen. Mit dem Kommando SHOW-DBL-DEFAULTS kann sich der Benutzer über die aktuell eingestellten Werte informieren. Mit dem Kommando RESET-DBL-DEFAULTS können die geänderten Einstellungen auf die DBL-Voreinstellungen zurückgesetzt werden.
Einschränkungen
Benutzer mit den Privilegien SECURITY-ADMINISTRATION, SAT-FILE-EVALUATION und SAT-FILE-MANAGEMENT können das Kommando nur in Prozeduren nutzen.
Format
LOAD-EXECUTABLE-PROGRAM | Kurzname: LDX | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operandenbeschreibung
FROM-FILE =
Bestimmt die Eingabequelle, aus der das Programm geladen werden soll.
FROM-FILE = <filename 1..54 without-gen>
Name der PAM-Datei, die ein Lademodul oder PAM-LLM enthält.
FROM-FILE = *OMF
Die Eingabequelle ist die EAM-Bindemoduldatei. Sie enthält nur Bindemodule.
FROM-FILE = *LIBRARY-ELEMENT(...)
Die Eingabequelle ist eine Programmbibliothek, aus der Module geholt werden. Abhängig vom Elementtyp wird der dynamische Bindelader DBL oder der statische Lader ELDE aufgerufen.
LIBRARY =
Gibt die Eingabequelle an, aus der Module (LLMs, Lade- oder Bindemodule) geholt werden.
Die Eingabequelle muss in der Regel eine Programmbibliothek sein. Soll die Eingabequelle eine Objektmodulbibliothek (OML) sein, müssen folgende Bedingungen erfüllt sein:
Es sollen auschließlich Bindemodule (OM, TYPE=R) geladen werden
Für den Operanden NAME-SCOPE ist ein anderer Wert als der Default-Wert *ELEMENT angegeben.
Ob weitere Bibliotheken durchsucht werden, ist auch abhängig von der Angabe im Operanden ALTERNATE-LIBRARIES (siehe im Abschnitt "LOAD-EXECUTABLE-PROGRAM").
LIBRARY = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *BLSLIB voreingestellt.
LIBRARY = *BLSLIB
Die Eingabequelle ist die Standardbibliothek mit dem Dateikettungsnamen BLSLIB.
LIBRARY = <filename 1..54 without-gen>
Dateiname der Bibliothek, die als Eingabequelle verwendet wird.
LIBRARY = *LINK(...)
Dateikettungsname der Bibliothek, die als Eingabequelle verwendet wird.
LINK-NAME = <structured-name 1..8>
Dateikettungsname der Bibliothek.
ELEMENT-OR-SYMBOL =
Legt die Module fest, die aus der angegebenen Eingabequelle geholt werden.
Für ein Bindemodul hängt die Startadresse folgendermaßen von den Angaben im END-Satz des Bindemoduls ab:
Ist im END-Satz eine Startadresse angegeben, wird diese Adresse genommen.
Ist im END-Satz keine Startadresse angegeben, wird als Startadresse die Adresse der ersten CSECT des Moduls genommen.
Ist im END-Satz ein Externverweis (EXTRN oder WXTRN) angegeben, wird das Modul an der Adresse des Symbols gestartet, das diesen Externverweis befriedigt. Wurde kein Symbol gefunden, das den Externverweis befriedigt, wird
bei einem unbefriedigten EXTRN das Laden abgebrochen,
bei einem unbefriedigten WXTRN das Modul an der Adresse der ersten CSECT gestartet.
Ein LLM wird an der Adresse gestartet, die vom BINDER beim Speichern des LLM übernommen wurde.
ELEMENT-OR-SYMBOL = <composed-name 1..64 with-under>(...)
Name des Bindemoduls (Elementtyp R), Lademoduls (Elementtyp C) oder LLM (Elementtyp L). Der bzw. die möglichen Elementtypen werden im Operanden TYPE angegeben.
Abhängig von der Angabe im Operanden NAME-SCOPE darf ein CSECT- oder ENTRY-Name oder der Elementname eines Moduls angegeben werden.
VERSION =
Gibt die Elementversion an.
VERSION = *HIGHEST-EXISTING
Der Standardwert für die höchste Elementversion bei Programmbibliotheken wird übernommen (siehe Handbuch „LMS“ [21]).
VERSION = <composed-name 1..24 with-under>
Explizite Angabe der Elementversion.
NAME-SCOPE =
Gibt an, ob der bei ELEMENT-OR-SYMBOL angegebene Name nur ein Elementname oder auch ein CSECT- oder ENTRY-Name sein kann.
NAME-SCOPE = *ELEMENT
Es werden nur Elemente in PLAM-Bibliotheken gesucht.
NAME-SCOPE = *SYMBOL
Es werden nur CSECT- oder ENTRY-Namen gesucht. Ist der angegebene Name länger als 32 Zeichen, wird das Kommando abgewiesen.
Zur Suchreihenfolge siehe „Bindevorgang“ im Handbuch „BLSSERV“ [3].
NAME-SCOPE = *STD
Es werden sowohl Elementnamen (mit Ausnahme des Typs C) als auch CSECT/ENTRY-Namen gesucht. Ist der angegebene Name länger als 32 Zeichen, werden nur Elementnamen gesucht.
Zur Suchreihenfolge siehe „Bindevorgang“ im Handbuch „BLSSERV“ [3].
ELEMENT-OR-SYMBOL = <c-string 1..32 with-low symbol >
Angabe eines Symbols als C-String (Groß-/Kleinschreibung beachten). Zur Suchreihenfolge siehe „Bindevorgang“ im Handbuch „BLSSERV“ [3].
TYPE = (L,C,R) / list-poss(3): L / C / R
Angabe des Elementtyps. Bei Angabe einer Liste bestimmt die Reihenfolge der angegebenen Elementtypen auch die Suchreihenfolge. Die Voreinstellung (L,C,R) legt fest, dass das Element zuerst unter den LLMs, dann unter den Lademodulen und zuletzt unter den OMs gesucht wird. Bei NAME-SCOPE=*SYMBOL/*STD wird die Angabe des Elementtyps C ignoriert.
Für Elementnamen > 41 Zeichen gilt:
Die Angabe des Elementtyps C als Einzelwert wird das Kommando abgewiesen.
Bei Angabe mehrerer Elementtypen wird der Elementtyp C ignoriert.
Der Operand wird nur für die Eingabequelle (LIBRARY), nicht jedoch für alternative Bibliotheken berücksichtigt. Bei diesen gilt die feste Reihenfolge L,R.
PROGRAM-PARAMETERS = *NONE / <c-string 1..1800 with-low>
Die Angabe von Parametern ist nur bei Einsatz des kostenpflichtigen Subsystems SDF-P möglich.
Programmparameter, die das aufgerufene Programm aus der S-Variablen SYSPARAM oder über die C-Funktion getopt einlesen kann.
Voreingestellt ist *NONE, d.h. es werden keine Parameter an das Programm übergeben. Eine bereits existierende S-Variable SYSPARAM wird in diesem Fall gelöscht.
DBL-PARAMETERS = *STD / *PARAMETERS(...)
Der Operand wird für Lademodule (Elementtyp C) nicht ausgewertet.
Bezeichnet alle Parameter, die im DBL voreingestellt sind bzw. deren Voreinstellung mit dem Kommando MODIFY-DBL-DEFAULTS geändert werden kann. *STD ist voreingestellt, d.h. der Kommandoaufruf erfolgt mit den aktuellen DBL-Parametern. Mit der Angabe von *PARAMETERS(...) können explizite Werte für den Kommandoaufruf vereinbart werden.
DBL-PARAMETERS = *PARAMETERS(...)
Explizite Angabe der DBL-Parameter für diesen Kommandoaufruf.
LOADING = *PARAMETERS(...)
Gibt die Parameter für den Ladevorgang an.
PROGRAM-MODE =
Bestimmt, in welchen Teil des Adressraums (oberhalb oder unterhalb 16 MByte) die Module der Ladeeinheit geladen werden. Zum Adressierungsmodus siehe Handbuch „BLSSERV“ [3].
PROGRAM-MODE = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *ANY voreingestellt.
PROGRAM-MODE = *ANY
Die Module der Ladeeinheit können oberhalb oder unterhalb 16 MByte geladen werden.
PROGRAM-MODE = *24
Die gesamte Ladeeinheit wird unterhalb 16 MByte geladen.
LOAD-INFORMATION =
Legt die Ladeinformationen der Ladeeinheit fest.
LOAD-INFORMATION = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *DEFINITIONS voreingestellt.
LOAD-INFORMATION = *DEFINITIONS
Ein ESD, das die Programmdefinitionen aller Module der Ladeeinheit enthält, wird geladen.
Programmdefinitionen sind Programmabschnitte (CSECTs), Einsprungstellen (ENTRYs), COMMON-Bereiche und externe Pseudoabschnitte (XDSECs-D).
LOAD-INFORMATION = *REFERENCES
Ein ESD, das zusätzlich zu den Programmdefinitionen die befriedigten Referenzen aller Module der Ladeeinheit enthält, wird geladen.
Referenzen sind Externverweise (EXTRNs), V-Konstanten, bedingte
Externverweise (WXTRNs) und externe Pseudoabschnitte (XDSECs-R).
LOAD-INFORMATION = *MAP
Nur ein ESD, das für den Aufbau der DBL-Liste notwendig ist, wird temporär geladen. Das ESD wird entladen, sobald die DBL-Liste aufgebaut ist.
LOAD-INFORMATION = *NONE
Das Externadressbuch wird bei LLMs nicht und bei OMs nur temporär geladen:
Bei LLMs wird das Externadressbuch überhaupt nicht gelesen und wird deshalb auch nicht für die Befriedigung innerhalb der erzeugten Ladeeinheit verwendet.
Bei OMs wird das Externadressbuch gelesen und es ist temporär während des Ladevorganges verfügbar.
Wenn zwischen LLMs und OMs der erzeugten Ladeeinheit Externverweise befriedigt werden sollen, muss mindestens *DEFINITIONS oder *MAP angegeben werden.
REP-FILE = *DBL-DEFAULT / *NONE / <filename 1..54 without-gen>
Gibt an, ob auf die Module einer Ladeeinheit REP-Sätze anzuwenden sind. Default-Wert: Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *NONE voreingestellt, d.h., es werden keine REP-Sätze verwendet.
Gibt der Benutzer einen Dateinamen an, versucht der DBL REP-Sätze aus dieser Datei zu verarbeiten. Die REP-Sätze müssen das Standardformat haben, das vom Dienstprogramm RMS verarbeitet wird (siehe Handbuch „Dienstprogramme“ [9]). Tritt ein Fehler bei der Verarbeitung von REP-Sätzen auf, wird eine Meldung (Warnung) ausgegeben, der fehlerhafte REP-Satz übergangen und anschließend die REP-Verarbeitung fortgesetzt.
IGNORE-ATTRIBUTES =
Gibt an, welche CSECT-Attribute beim Laden ignoriert werden.
IGNORE-ATTRIBUTES = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *NONE voreingestellt.
IGNORE-ATTRIBUTES = *NONE
Alle CSECT-Attribute werden beim Laden beachtet.
IGNORE-ATTRIBUTES = *READ-ONLY
Das CSECT-Attribut READ-ONLY wird beim Laden ignoriert. Die CSECT wird in eine lese-/schreibbare Hauptspeicherseite geladen. Dadurch wird z.B. das Setzen von Haltepunkten beim Testen mit AID ermöglicht.
AMODE-CHECK = *DBL-DEFAULT / *STD / *ADVANCED
Bestimmt, ob während des Ladens zusätzliche Prüfungen des
Adressierungsmodus stattfinden.
AMODE-CHECK = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *STD voreingestellt.
AMODE-CHECK = *STD
Es werden nur die zu BLSSERV < V2.5 kompatiblen Prüfungen durchgeführt.
AMODE-CHECK = *ADVANCED
Es werden die Prüfungen wie bei AMODE-CHECK=*STD durchgeführt. Zusätzlich wird während des Ladens geprüft, ob sich durch den Adressierungsmodus der Ladeeinheit Inkonsistenzen beim Auflösen der Externverweise ergeben können.
RESOLUTION = *PARAMETERS(...)
Legt fest, wie Externverweise behandelt werden sollen.
SHARE-SCOPE =
Die Angabe wird für PAM-LLMs ignoriert (implizit gilt SHARE-SCOPE=*NONE).
Legt fest, ob bzw. welcher Teil des Shared Code (siehe „Gemeinsam benutzbare Programme“ im Handbuch „BLSSERV“ [3].) in die Suche nach Modulen der Ladeeinheit und nach unbefriedigten Externverweisen einbezogen wird.
Auf Systemebene kann die Systembetreuung oft benutzte Programme oder Module den Anwendern im Klasse-4/5-Speicher zur Verfügung stellen (als nicht privilegierte Subsysteme). Der nicht privilegierte Benutzer kann ebenfalls Programme oder Module mehreren Benutzern im Klasse-6-Speicher zur Verfügung stellen (in einem Memory Pool).
Verwendet ein Benutzer Module aus dem zur Verfügung stehenden Shared Code, müssen diese Module nicht im Klasse-6-Speicher der Task angelegt werden. Es genügen die Verweise auf bereits als Shared Code geladene Module.
In folgender Reihenfolge wird der Shared Code durchsucht:
Suchen im Shared Code im Klasse-6-Speicher (Common Memory Pools). Findet DBL das gesuchte Symbol, übergibt er die Ladeadresse, verbindet die Task mit dem Memory Pool und beendet den Ladevorgang.
Suchen im Shared Code des Systems, d.h. Durchsuchen aller
nichtprivilegierten Subsysteme, die in den Klasse-3/4- und Klasse-5-Speicher geladen wurden. Findet DBL das gesuchte Symbol, übergibt er die
Ladeadresse, verbindet die Task mit dem Subsystem und beendet den
Ladevorgang.
SHARE-SCOPE = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *SYSTEM-MEMORY voreingestellt.
SHARE-SCOPE = *SYSTEM-MEMORY
Nur der im Klasse-3/4- und Klasse-5-Speicher zur Verfügung gestellte Shared Code wird bei der Suche berücksichtigt.
SHARE-SCOPE = *NONE
Shared Code wird bei der Suche nicht berücksichtigt.
SHARE-SCOPE = *ALL
Bei der Suche wird sowohl der im Klasse-3/4- und Klasse-5-Speicher (System Memory) als auch der im Klasse-6-Speicher zur Verfügung stehende Shared Code (Memory-Pools) berücksichtigt.
SHARE-SCOPE = *MEMORY-POOL(...)
Bei der Suche wird der im Klasse-6-Speicher zur Verfügung stehende Shared Code des Benutzers berücksichtigt, d.h., Memory-Pools mit dem angegebenen Geltungsbereich.
SCOPE =
Geltungsbereich der zu berücksichtigenden Memory Pools.
SCOPE = *ALL
Es werden alle Memory Pools berücksichtigt, auf die die Task zugreifen kann.
SCOPE = *USER-ID
Es werden nur Memory Pools berücksichtigt, die für die Benutzerkennung der aufrufenden Task eingerichtet wurden, d.h., die mehrbenutzbar für alle Tasks dieser Benutzerkennung sind.
SCOPE = *USER-GROUP
Es werden nur Memory Pools berücksichtigt, die für die Benutzergruppe, der die aufrufende Task angehört, eingerichtet wurden, d.h., die mehrbenutzbar für alle Tasks dieser Benutzergruppe sind.
SCOPE = *HOST-SYSTEM
Es werden nur Memory Pools berücksichtigt, die systemweit eingerichtet wurden, d.h., die von allen Tasks benutzt werden können.
PROGRAM-VERSION =
Legt die Programmversion fest, die DBL verwenden soll. Aus der Sicht von DBL ist eine Programmversion die Version einer zu ladenden oder bereits geladenen Ladeeinheit.
PROGRAM-VERSION = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *STD voreingestellt.
PROGRAM-VERSION = *STD
Die aus dem Ladeaufruf resultierende Ladeeinheit erhält als Programmversion die Version des geladenen Bibliothekselements.
Wenn das im Ladeaufruf angegebene Symbol bereits geladen ist, wird die Programmversion gesucht, die mit dem Kommando SELECT-PROGRAM-
VERSION festgelegt wurde. Falls noch keine Programmversion festgelegt ist, verwendet DBL das zuerst gefundene Symbol.
PROGRAM-VERSION = *BLANK
Die Programmversion wird nicht berücksichtigt. Wenn die im Aufruf angegebene Ladeeinheit noch nicht geladen ist, erhält die zu ladende Ladeeinheit keine Version.
PROGRAM-VERSION = <composed-name 1..24 with-under>
Version des Programmes, das unter den bereits geladenen Programmen gesucht wird. Ist diese Programmversion noch nicht geladen, so erhält die zu ladende Ladeeinheit diese Version.
ALTERNATE-LIBRARIES = *DBL-DEFAULT / *NONE / list-poss(2): *TASKLIB / *BLSLIB##
Die Angabe wird für PAM-LLMs ignoriert (implizit gilt ALTERNATE-LIBRARIES= *NONE).
Legt fest, ob alternative Bibliotheken nach Symbolen durchsucht werden. Sie werden auch für die Autolink-Funktion des DBL benutzt (siehe auch Operand AUTOLINK).
Bei Angabe einer Liste werden die Bibliotheken in der eingegebenen Reihenfolge durchsucht.
Für die Suche in den alternativen Bibliotheken gilt unabhängig vom Operanden TYPE die feste Typreihenfolge L,R. Dabei wird nur nach Symbolen gesucht, nicht nach Elementnamen.
ALTERNATE-LIBRARIES = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *NONE voreingestellt.
ALTERNATE-LIBRARIES = *NONE
Es werden keine alternativen Bibliotheken durchsucht.
ALTERNATE-LIBRARIES = *TASKLIB
Die System- und /oder die Benutzer-Tasklib werden in folgender Reihenfolge durchsucht:
- Die Bibliothek, die mit dem Kommando SET-TASKLIB zugewiesen wurde
Die Bibliothek $userid.TASKLIB
oder, falls diese nicht existiert:
Die Bibliothek TASKLIB unter der System-Standardkennung (DEFLUID-Kennung)
ALTERNATE-LIBRARIES = *BLSLIB##
Es werden die mit dem Dateikettungsnamen BLSLIBnn bzw. $BLSLBnn (00<=nn<=99) zugewiesenen Bibliotheken durchsucht.
Dateien mit Dateikettungsnamen $BLSLBnn sind alternative Systembibliotheken, die abhängig von den benötigten Komponenten des Laufzeitsystems systemintern zugewiesen werden.
AUTOLINK =
Die Angabe wird für PAM-LLMs ignoriert (implizit gilt AUTOLINK=*NO).
Gibt an, ob die Autolink-Funktion des DBL genutzt werden soll.
AUTOLINK = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *YES voreingestellt.
AUTOLINK = *YES
Die Autolink-Funktion des DBL wird genutzt, wobei sowohl die Eingabequelle als auch eventuelle Alternativbibliotheken durchsucht werden.
AUTOLINK = *NO
Die Autolink-Funktion des DBL wird nicht genutzt.
AUTOLINK = *ALTERNATE-LIBRARIES
Die Autolink-Funktion des DBL wird nur für alternative Bibliotheken genutzt, wenn vereinbart wurde, dass alternative Bibliotheken durchsucht werden sollen (ALTERNATE-LIBRARIES=*TASKLIB/*BLSLIB##).
ERROR-PROCESSING = *PARAMETERS(...)
Legt fest, wie auftretende Fehler behandelt werden sollen.
NAME-COLLISION =
Legt fest, wie Namenskonflikte bei Symbolen mit gleichen Namen behandelt werden. Namenskonflikte werden nur entdeckt, wenn die Symbole nicht maskiert sind.
NAME-COLLISION = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *STD voreingestellt.
NAME-COLLISION = *STD
Namenskonflikte zwischen nicht maskierten Symbolen werden durch
Warnungsmeldungen angezeigt. Das Modul, das das Symbol mit dem gleichen Namen enthält, wird geladen. Die neue Ausprägung des Symbols wird maskiert, d.h. es wird nicht mehr benutzt, um Externverweise zu befriedigen.
NAME-COLLISION = *ABORT
Das Laden der aktuellen Ladeeinheit wird abgebrochen, wenn eine
Namenskollision zwischen nicht maskierten Symbolen entdeckt wird.
UNRESOLVED-EXTRNS =
Die Angabe wird für PAM-LLMs ignoriert (implizit gilt UNRESOLVED-EXTRNS= *STD). Legt fest, wie nicht befriedigte Externverweise behandelt werden. Alle nicht befriedigten Externverweise werden in die Symboldatei SYSOUT ausgegeben. Dabei werden unbefriedigte externe Pseudoabschnitte (XDSECs-R) getrennt aufgelistet.
UNRESOLVED-EXTRNS = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *STD voreingestellt.
UNRESOLVED-EXTRNS = *STD
Nicht befriedigte Externverweise erhalten eine Adresse, die im Operanden ERROR-EXIT angegeben ist.
UNRESOLVED-EXTRNS = *DELAY
Nicht befriedigte Externverweise werden zu einem späteren Zeitpunkt befriedigt. Der Operand ist nur zulässig bei LOAD-INFORMATION=*REFERENCES.
Der DBL speichert die nicht befriedigten Externverweise im Link-Kontext. Wird die nächste Ladeeinheit im Kontext geladen, versucht der DBL am Ende des Ladens, die gespeicherten Externverweise mit CSECTs und ENTRYs dieser Ladeeinheit zu befriedigen. Dieser Vorgang wiederholt sich beim Laden weiterer Ladeeinheiten so lange der Kontext besteht. Externe Pseudoabschnitte (XDSECs-R) können nicht gespeichert werden.
Beim Speichern im Kontext erhalten die unbefriedigten Externverweise eine (vorläufige) Adresse, die im Operanden ERROR-EXIT angegeben ist.
UNRESOLVED-EXTRNS = *ABORT
Nicht befriedigte Externverweise sind unzulässig. Das Laden der aktuellen Ladeeinheit wird abgebrochen.
ERROR-EXIT = *DBL-DEFAULT / *NONE / <x-string 1..8>
Legt die Adresse fest, die unbefriedigte Externverweise erhalten, falls die Operanden UNRESOLVED-EXTRNS=*STD/*DELAY angegeben sind.
Default-Wert: Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *NONE voreingestellt.
Bei Angabe von *NONE bleiben die Externverweise unbefriedigt (entspricht der Angabe X'FFFFFFFF').
REPORTING = *PARAMETERS(...)
Legt fest, wie der Ladevorgang protokolliert werden soll.
MESSAGE-CONTROL =
Legt die niedrigste Meldungsklasse fest, ab der Meldungen ausgegeben werden.
MESSAGE-CONTROL = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *INFORMATION voreingestellt.
MESSAGE-CONTROL = *INFORMATION
Die Meldungen aller Meldungsklassen werden ausgegeben.
MESSAGE-CONTROL = *WARNING
Nur Meldungen der Meldungsklasse WARNING und ERROR werden ausgegeben. Nicht ausgegeben werden Meldungen der Meldungsklasse INFORMATION.
MESSAGE-CONTROL = *ERROR
Nur Meldungen der Meldungsklasse ERROR werden ausgegeben.
MESSAGE-CONTROL = *NONE
Es werden keine Meldungen ausgegeben.
PROGRAM-MAP =
Legt fest, ob eine DBL-Liste ausgegeben wird oder nicht und gibt das Ausgabeziel für die DBL-Liste an.
PROGRAM-MAP = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *NONE voreingestellt.
PROGRAM-MAP = *NONE
Es wird keine DBL-Liste ausgegeben.
PROGRAM-MAP = *SYSLST(...)
Das Ausgabeziel ist die Systemdatei SYSLST.
SYSLST-NUMBER =
Legt die Nummer der Systemdatei SYSLST aus der Menge SYSLST00 bis SYSLST99 fest.
SYSLST-NUMBER = *STD
Das Ausgabeziel ist die Systemdatei SYSLST[00].
SYSLST-NUMBER = <integer 1..99>
Das Ausgabeziel ist eine Systemdatei SYSLST aus der Menge SYSLST01 bis SYSLST99.
PROGRAM-MAP = *SYSOUT
Das Ausgabeziel ist die Systemdatei SYSOUT.
PROGRAM-MAP = *BOTH(...)
Das Ausgabeziel sind die Systemdateien SYSOUT und SYSLST.
SYSLST-NUMBER =
Legt die Nummer der Systemdatei SYSLST aus der Menge SYSLST00 bis SYSLST99 fest.
SYSLST-NUMBER = *STD
Das Ausgabeziel ist die Systemdatei SYSLST[00]
SYSLST-NUMBER = <integer 1..99>
Das Ausgabeziel ist eine Systemdatei SYSLST aus der Menge SYSLST01 bis SYSLST99.
MONJV = *NONE / <filename 1..54 without-gen-vers>
Name der JV, die das Programm überwachen soll.
Während des Programmablaufs setzt dann das System die JV auf entsprechende Werte:
$R: Programm läuft
$T: Programm normal beendet
$A: Programm abnormal beendet
(siehe auch Handbuch „Jobvariablen“ [20]).
CPU-LIMIT = *JOB-REST / <integer 1..32767 seconds >
Maximale CPU-Zeit in Sekunden, die das Programm beim Ablauf verbrauchen darf. Überschreitet das Programm beim Ablauf die angegebene Zeit, wird im Dialog das Programm unterbrochen und die Meldung EXC0075 ausgegeben. Der Benutzer kann einen Dump anfordern, das Programm abbrechen oder fortsetzen. Wenn im Programm eine STXIT-Routine für das Erreichen des CPU-Limits definiert ist, wird diese durchlaufen und das Programm beendet.
Im Batchbetrieb wird das Programm beendet. Siehe auch Abschnitt „Zeitlimitierungen im BS2000".
CPU-LIMIT = *JOB-REST
Wurde der Auftrag mit Zeitbeschränkung gestartet, so wird für das Programm die verbleibende CPU-Zeit als Zeitbeschränkung verwendet. Wurde der Auftrag ohne Zeitbeschränkung gestartet, läuft auch das Programm ohne Zeitbeschränkung.
TEST-OPTIONS =
Gibt an, ob symbolische Adressen im Programm beim Testen (mit AID) verwendet werden dürfen.
Mit symbolischen Adressen können nur Programme getestet werden, für die beim Übersetzen Test-und Diagnoseinformation (LSD) erzeugt wurde. Dazu müssen beim Übersetzen des Quellprogramms bestimmte Compiler-Optionen gesetzt werden (siehe Benutzerhandbücher der Compiler).
TEST-OPTIONS = *DBL-DEFAULT
Es gilt die Einstellung des letzten MODIFY-DBL-DEFAULTS-Kommandos. Bei Task-Beginn ist *NONE voreingestellt.
TEST-OPTIONS = *NONE
Das lokale symbolische Adressbuch bzw. das Internadressbuch wird nicht berücksichtigt.
TEST-OPTIONS = *AID
Dieser Operand wird zum Testen mit AID benötigt.
Die Angabe erlaubt die Verwendung von symbolischen Adressen beim Testen des Programmes mit AID-Kommandos. Dazu muss ein lokales symbolisches Adressbuch oder ein Internadressbuch beim Übersetzen des Programms erzeugt worden sein.
Für OMs (Elementtyp R) und LLMs (Elementtyp L) ist die Angabe nur möglich, wenn gleichzeitig LOAD-INFORMATION=*DEFINITIONS/*REFERENCES angegeben wird.
RESIDENT-PAGES = *PARAMETERS(...)
Anzahl residente Speicherseiten, die für den Programmablauf benötigt werden.
Der Operand muss angegeben werden, wenn im Programm mit einem CSTAT-Makro (siehe Handbuch „Makroaufrufe an den Ablaufteil“ [22]) Seiten resident gemacht werden sollen. Die zulässige Anzahl an residenten Speicherseiten kann vom Operator beeinflusst werden.
Fehlt der Operand (entspricht MIN=*STD,MAX=*STD), so werden die
Speicheranforderungen dem Anfangssatz des Programms entnommen, wozu die Datei eröffnet werden muss.
MINIMUM = *STD / <integer 0..2147483647 4Kbyte >
Minimal benötigte Anzahl an residenten Speicherseiten.
MAXIMUM = *STD / <integer 0..2147483647 4Kbyte >
Maximal benötigte Anzahl an residenten Speicherseiten.
VIRTUAL-PAGES = *STD / <integer 0..32767 4Kbyte >
Der Operand wird nur für Lademodule (Elementtyp C) ausgewertet.
Anzahl der seitenwechselbaren Speicherseiten, die für den Programmablauf zur Verfügung stehen müssen. Übersteigt die angegebene Anzahl die am Rechner zur Verfügung stehende Seitenzahl, wird das Kommando abgewiesen.
VIRTUAL-PAGES = *STD
Die Speicheranforderungen werden dem Anfangssatz des Programms entnommen, wozu die Datei eröffnet werden muss.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
---|---|---|---|
0 | CMD0001 | Kommando ausgeführt | |
2 | 0 | BLS0150 | Warnung bei Laden des Programms (siehe Meldung auf SYSOUT) |
32 | BLS0152 | Laden des Programms wegen Systemfehlers abgebrochen | |
64 | CMD0216 | Benutzer besitzt keine Berechtigung für das Kommando | |
64 | BLS0153 | Laden des Programms wegen nicht korrigierbaren Fehlers abgebrochen (Ursache siehe SYSOUT-Meldung) |
Hinweise
Zusätzliche Informationen über das Laden von Programmen enthält die Beschreibung der Lader im Handbuch „BLSSERV“ [3].
Der DBL sperrt während des gesamten Ablaufs keine Bibliotheken und Bibliothekselemente.
Der Aufruf des DBL mit START-/LOAD-EXECUTABLE-PROGRAM entspricht immer einem Aufruf mit START-/LOAD-PROGRAM und RUN-MODE=*ADVANCED. Die Funktionalität von RUN-MODE=*STD ist nur mit den bisherigen Kommandos START-/LOAD-PROGRAM verfügbar.
Für ein PAM-LLM (d.h. ein LLM, das mit dem BINDER bereits zu einer Ladeeinheit gebunden und in einer PAM-Datei abgespeichert wurde), sind einige DBL-Funktionen nicht verfügbar. Explizite Angaben zu den entsprechenden Operanden werden ignoriert und das Kommando wird implizit mit folgenden Werten ausgeführt:
SHARE-SCOPE=*NONE
ALTERNATE-LIBRARIES-=*NONE
AUTOLINK=*NO
UNRESOLVED-EXTRNS=*STD
Bei Angabe mehrerer gleicher Element-Typen (Operand TYPE) bzw. alternativer Bibliotheken (Operand ALTERNATE-LIBRARIES) wird die Kommandoausführung mit einer Warnung abgebrochen.
Bei Angabe von NAME-SCOPE=*SYMBOL/*STD bzw. ELEMENT-OR-SYMBOL= <c-string> gilt:
Ist nur der Elementtyp C (Operand TYPE) vereinbart, wird die Kommandoausführung mit einer Fehlermeldung abgebrochen.
Sind der Elementtyp C und mindestens ein anderer Elementtyp (Operand TYPE) vereinbart, wird der Elementtyp C ignoriert und das Kommando ausgeführt. Bei NAME-SCOPE=*STD wird zusätzlich eine Warnung ausgegeben, sofern ein existierendes C-Element übergangen wurde
Da die Angabe eines Elementnamens > 32 Zeichen im Operanden ELEMENT-OR-SYMBOL keinen CSECT- bzw. ENTRY-Namen (max. 32 Zeichen) betreffen kann, gilt:
Bei Angabe von NAME-SCOPE=*SYMBOL wird das Kommando abgewiesen.
Bei Angabe von NAME-SCOPE=*STD wird die Suche ohne Warnung nur auf Elementnamen beschränkt.
Da die Angabe eines Elementnamens > 41 Zeichen im Operanden ELEMENT-OR-SYMBOL kein Lademodul (Elementtyp C mit max. 41 Zeichen) betreffen kann, gilt:
Bei Angabe von TYPE=C wird das Kommando abgewiesen.
Ist im Operanden TYPE neben C mindestens ein anderer Elementtyp angegeben, wird der Elementtyp C ohne Warnung ignoriert.
Die Namen des Kontextes und der Ladeeinheit bestimmt der DBL wie folgt:
für den Kontext den Standardnamen „LOCAL#DEFAULT“
für die Ladeeinheit den Standardnamen „%UNIT“
Das Ausführen von Programmen kann nicht geschachtelt werden. Erfolgt die Angabe eines LOAD-EXECUTABLE-PROGRAM- bzw. LOAD-PROGRAM-Kommandos, wenn schon ein Programm geladen ist, dann wird dieses Programm entladen und das neue Kommando ausgeführt. Eine Fehleranzeige erscheint nicht; aber es wird zuvor eine im entladenen Programm definierte ABEND-STXIT-Routine aktiviert - außer, das Kommando wird über den CMD-Makro aufgerufen (siehe Handbuch „Makroaufrufe an den Ablaufteil“ [22]).
Programmüberwachung (siehe auch Handbuch „Jobvariablen“ [20]):
Die Zustandsanzeige in der programmüberwachenden Jobvariablen wird zum Startzeitpunkt auf „$R“ gesetzt.
Falls schon ein Programm geladen oder ein gestartetes Programm durch ein HOLD-PROGRAM-Kommando bzw. Drücken der [K2]-Taste unterbrochen ist, wird die Zustandsanzeige der programmüberwachenden Jobvariablen auf „$A“ gesetzt.
Falls die Jobvariable zum Zeitpunkt der Kommandoverarbeitung nicht zugreifbar ist, wird eine Fehlermeldung nach SYSOUT ausgegeben und die
Kommandoverarbeitung fortgesetzt.
Beispiele
Siehe Kommando START-EXECUTABLE-PROGRAM.