Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Binden des Anwendungsprogramms

UTM-Anwendungen nutzen die Funktionalität des BLS zum Laden von LLM (Link and Load Module, Bindelademodule) und von OM (Object Module, Bindemodul). Damit bieten sich erweiterte Möglichkeiten:

  • bei der Verwaltung der Objekte durch die Nutzung von LLMs, die in eine Private und eine Public Slice unterteilt sind.

    Dadurch können shareable und nicht-shareable Teile eines Objekts, die in einem Compilerlauf erzeugt wurden, in einem Container verwaltet werden. Dies vermeidet weitgehend Inkonsistenzen beim Vorbinden und Austauschen von Objekten.

  • beim Laden eines Objekts (Programm, Area).

    Ein Objekt kann statisch eingebunden oder beim Anwendungsstart nachgeladen werden. Für Teilprogramme besteht darüberhinaus die Möglichkeit, sie erst zum Zeitpunkt des ersten Aufrufs nachzuladen.

  • beim Programmaustausch.

    Es kann ein einzelnes Objekt (LLM oder OM) oder eine vorgebundene Gruppe von Objekten (LLM oder OM) ausgetauscht werden.

Es braucht nur ein Teil der Objekte der Anwendung statisch gebunden werden. Dieser Teil des Anwendungsprogramms heißt Start-LLM und wird mit dem Kommando START-EXECUTABLE-PROGRAM FROM-FILE=*LIBRARY(...) geladen und gestartet. In das Start-LLM müssen Sie die ROOT-Systemmodule und die Objekte (Teilprogramme, Module und Datenbereiche) einbinden, die keinem Lademodul oder einem Lademodul mit LOAD-MODE=STATIC zugeordnet sind.

Das vom KDCDEF erzeugte ROOT-Tabellenmodul muss nicht statisch gebunden werden, d.h. es kann beim Start der Anwendung dynamisch nachgeladen werden.

Die anderen Teile des Anwendungsprogramms können in Form von Lademodulen bereitgestellt werden. Ein Lademodul ist

  • entweder ein Bindelademodul, genannt Link Load Module (=LLM), das als Element vom Typ L in einer Programmbibliothek steht,

  • oder ein Objektmodul (=OM), das als Element vom Typ R in einer Bindemodulbibliothek steht.

Aus Gründen der Performance sollten Sie jedoch alle Lademodule mit dem BINDER zu LLM vorbinden und als Elemente vom Typ L in einer Programmbibliothek bereitstellen.

Bei der UTM-Generierung müssen Sie für jedes Bindelademodul und jedes Objektmodul, das Sie nicht statisch in das START-LLM einbinden, genau eine LOAD-MODULE-Anweisung eingeben und dabei angeben, wann das Modul dazugebunden und wohin es geladen werden soll. Siehe dazu openUTM-Handbuch „Anwendungen generieren“.

Existieren beim Binden der Anwendung unbefriedigte Externverweise auf Teilprogramme, lässt sich die Anwendung trotzdem starten. Können diese Externverweise nicht durch dynamisches Nachladen aufgelöst werden, sind die zugeordneten Transaktionscodes für die Anwendung ungültig, d.h. sie können nicht benutzt werden.