Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Dynamisches Binden und Laden mit dem DBL

Mit dem Dynamischen Bindelader DBL werden in einem Arbeitsgang Module temporär zu einer ladbaren Einheit gebunden, dann in den Speicher geladen und gestartet. Die erzeugte Ladeeinheit wird am Ende des Programmablaufs automatisch gelöscht.Die Arbeitsweise des DBL ist im Handbuch „Bindelader-Starter“ [10] ausführlich beschrieben.

Der DBL wird implizit durch die Kommandos START-PROGRAM und LOAD-PROGRAM aufgerufen. Die folgende Übersicht stellt die wichtigsten Angaben der Kommandos START-PROGRAM und LOAD-PROGRAM zum Aufruf des DBL zusammen; die ausführliche Beschreibung aller möglichen Operanden findet sich im Handbuch „BS2000/OSD-BC Kommandos“ [3].


{START-PROGRAM | LOAD-PROGRAM} FROM-FILE =]
*MODULE (LIBRARY={*OMF,ELEMENT=modul | *OMF [,ELEMENT=*ALL] | bibliothek,ELEMENT=element} [,RUN-MODE = {*STD | *ADVANCED(ALT-LIB=*YES)}])


Das START-PROGRAM-Kommando weist den Bindelader an, ein ablauffähiges Programm zu erzeugen, es in den Speicher zu laden und zu starten. Da das Programm unmittelbar im Anschluss an das Kommando abläuft, müssen ihm bereits vor dem START-PROGRAM-Kommando die erforderlichen Betriebsmittel (Dateien) zugewiesen werden (siehe Abschnitt „Zuweisen von katalogisierten Dateien").

Das LOAD-PROGRAM-Kommando veranlasst den Bindelader, ein ablauffähiges Programm zu erzeugen und in den Speicher zu laden, ohne es zu starten. Dadurch lassen sich vor dem Programmablauf weitere Kommandos eingeben - etwa zur Programmüberwachung mit einer Dialogtesthilfe. Das Programm kann daraufhin folgendermaßen gestartet werden:

  • durch ein %RESUME-Kommando, falls mit der Dialogtesthilfe AID getestet werden soll oder

  • durch ein RESUME-PROGRAM-Kommando in allen anderen Fällen.

LIBRARY=*OMF
bezeichnet die temporäre EAM-Datei der aktuellen Task, in die der Compiler das übersetzte Objektmodul ausgegeben hat.

ELEMENT=modul
gibt den Namen des Moduls an, der zuerst geladen werden soll. modul besteht aus den ersten acht Zeichen des entsprechenden ID-Namens in der Übersetzungseinheit. modul kann auch der Einsprungname (ENTRY-Name) des Programmabschnitts sein, der als erster geladen werden soll.

ELEMENT=*ALL
bewirkt, dass der Bindelader alle Module aus der EAM-Bindemoduldatei holt. Ist dies gewünscht, erübrigt sich die Angabe, da dieser Wert voreingestellt ist.

LIBRARY=bibliothek
gibt den Namen der PLAM-Bibliothek an, in der sich das Modul als Element befindet. Mit *LINK(LINK-NAME=linkname) kann auch ein vereinbarter Linkname für die Bibliothek angegeben werden.

ELEMENT=element
gibt den Namen des Moduls an, der als Element vom Typ R oder L in der angegebenen PLAM-Bibliothek steht. Sind mehrere Elemente gleichen Namens in der Bibliothek gespeichert, wird das Element mit der alphabetisch höchsten Versionsbezeichnung genommen.

RUN-MODE=STD
In diesem Modus muss das Laufzeitsystem CRTE vor Aufruf des Binders mittelsSET-TASKLIB-Kommando als TASKLIB zugewiesen werden.
Außer der TASKLIB und ggf. der Bibliothek, die die Module enthält, können keine weiteren Bibliotheken beim Binden berücksichtigt werden.

RUN-MODE=ADVANCED(ALTERNATE-LIBRARIES=YES)
In diesem Modus durchsucht der Binder zur Befriedigung von Externverweisen bis zu 100 verschiedene Bibliotheken, die vor Aufruf des Binders mit dem LinknamenBLSLIBnn (00 ≤ nn ≤ 99) zugewiesen wurden.

Dynamisches Nachladen

Rufen COBOL Module andere externe Unterprogramme über „CALL-bezeichner“, dann sind weitere Bedingungen beim Laden und Starten zu berücksichtigen. Näheres dazu siehe in Kapitel „Programmverknüpfungen".