Mit OPEN-LIBRARY wird eine globale Bibliothek festgelegt und eröffnet. Diese wird in den anderen Anweisungen mit LIBRARY = *STD angesprochen.
Werden in einer Anweisung zwei Bibliotheken benötigt, so muss die zweite Bibliothek bei der Anweisung explizit oder über Dateikettungsnamen angegeben werden.
Globale Bibliotheken bleiben solange geöffnet, bis sie explizit durch die CLOSE-LIBRARY-Anweisung geschlossen werden oder eine neue OPEN-LIBRARY-Anweisung gegeben wird.
Globale Bibliotheken werden standardmäßig nur zum Lesen eröffnet. Sollen sie zum Lesen und Schreiben eröffnet werden, muss der Operand MODE=*UPDATE gesetzt werden.
Wird eine Bibliothek neu eingerichtet, muss sie mit MODE=*UPDATE erzeugt werden.
OPEN-LIBRARY | ||||||||||||||||||||||||||||||||||||||||
|
LIBRARY = <filename 1..54 without-vers>
Die Bibliothek mit dem hier angegebenen Namen wird als globale Bibliothek eingerichtet und eröffnet.
LIBRARY = *LINK(...)
Die über den Dateikettungsnamen zugewiesene Bibliothek wird als globale Bibliothek eingerichtet und eröffnet.
LINK-NAME = <structured-name 1..8>
Dateikettungsname der Bibliothek, der vor dem Aufruf von LMS mit einem /ADD-FILE-LINK-Kommando vereinbart wurde.
MODE = *READ / *UPDATE(...)
Öffnungsmodus der Bibliothek.
MODE = *READ
Die Bibliothek wird nur zum Lesen eröffnet. Sie muss bereits existieren.
MODE = *UPDATE(...)
Die Bibliothek wird zum Lesen und Schreiben eröffnet.
STATE = *ANY / *OLD/ *NEW
Status der zu eröffnenden Bibliothek.
STATE = *ANY
Die Bibliothek kann existieren. Existiert sie nicht, so wird sie neu angelegt.
STATE = *OLD
Die Bibliothek muss existieren.
STATE = *NEW
Die Bibliothek darf nicht existieren. Sie wird neu angelegt.
DEFAULTS = *UNCHANGED / *PARAMETERS(...)
Bibliotheksspezifische Defaultwerte für einen LMS-Lauf.
TYPE = *UNCHANGED
Keine Änderung bezüglich des bibliotheksspezifischen Defaulttyps. Standardmäßig wird der Bibliothek kein Defaulttyp zugewiesen.
TYPE = *NONE
Der Bibliothek wird kein bibliotheksspezifischer Defaulttyp zugewiesen, bzw. ein zugewiesener bibliotheksspezifischer Defaulttyp wird zurückgenommen.
TYPE = <alphanum-name 1..8>
Name des bibliotheksspezifischen Defaulttyps. Dieser ersetzt bei allen Anweisungen, die diese Bibliothek betreffen, die Typangabe *LMS-DEFAULT.
SNAPSET = *NONE / *LATEST / <name 1..1 with-low> / <integer -52..-1>
Der Operand ermöglicht das Eröffnen einer Bibliothek aus einem Snapset.
Die Angabe eines Snapset ist nur in Verbindung mit MODE=*READ (Default) erlaubt. Bibliotheken auf Snapsets können in den LMS-Anweisungen nur über LIBRARY=*STD angesprochen werden. Andere LIBRARY-Angaben beziehen sich immer auf das Originalpubset. (Beispiel siehe unten)
Beim Eröffnen einer Snapset-Bibliothek muss auf dem Originalpubset zur Ermittlung diverser Attribute eine Bibliothek gleichen Namens existieren. Fehlt die Bibliothek, lässt sich diese mit /RESTORE-FILE- FROM-SNAPSET als Ganzes wieder herstellen. Ersatzweise kann eine leere Bibliothek mit OPEN-LIBRARY library,U eingerichtet werden.
SNAPSET = *NONE
Die Bibliothek liegt nicht auf einem Snapset.
SNAPSET = *LATEST
Die Bibliothek liegt auf dem zuletzt erzeugten Snapset.
*LATEST entspricht der Angabe -1.
SNAPSET = <name 1..1 with-low>
Die Bibliothek liegt auf einem Snapset mit der Snapset-Id a-z,A-Z.
Snapsets mit Grossbuchstaben A-Z werden erst ab BS2000/OSD-BC V8.0 unterstützt.
Die Snapset-Id der Bibliothek kann mit den Kommandos /LIST-FILE-FROM-SNAPSET und /SHOW-SNAPSET-CONFIGURATION ermittelt werden.
SNAPSET = <integer -52..-1>
Die Bibliothek liegt auf einem Snapset in der zeitlichen Reihenfolge der Snapset-Erzeugung mit -1 für den neuesten Snapset.
Anweisungs-Returncode
(SC2) | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler |
Notwendige Zugriffsrechte
bei MODE=*READ
:
Leserecht für LIBRARY
bei MODE=*UPDATE
:
Lese- und Schreibrecht für LIBRARY
Hinweis
Wird die Anweisung mit LMS0024 und PLA0203 abgebrochen, so könnte ein altes Bibliotheksformat vorliegen. Wie dies geprüft und in eine PLAM-Bibliothek konvertiert werden kann, ist im Anhang im Abschnitt „Migration alter Bibliotheksformate" beschrieben.
Beispiele
Eröffnen einer existierenden Bibliothek lib1:
//open-library library=lib1
Eröffnen einer existierenden Bibliothek über Dateikettungsname:
/add-file-link link-name=glob-lib,file-name=lib1 //start-lms ... //open-library library=*link(link-name=glob-lib)
Neuanlegen einer Bibliothek:
//open-library library=lib1new, mode=*update
Eröffnen einer Bibliothek auf einem Snapset:
Die Bibliothek X liege auf dem Originalpubset und ein Snap von X auf dem Snapset a.//open-lib x,snapset=a
Mit folgender Anweisung können die Elemente vom Snapset a auf den Originalpubset kopiert werden:
//copy-elem (*std,*,*),(x)
Im Gegensatz dazu kopiert die folgende Anweisung nur innerhalb des Originalpubsets:
//copy-elem (x,*,*),(y)