Sperrmechanismen für Quellcode-Objekte

Natural bietet Sperrmechanismen, durch die ein konkurrierendes Ändern von Natural-Quellcode-Objekten verhindert wird. Durch diese Mechanismen können Quellcode-Objekte gesperrt werden, die in einer lokalen Großrechnerumgebung und/oder in einer SPoD-Umgebung (SPoD = Natural Single Point of Development) bearbeitet werden, welche mit einem Großrechner-Server verbunden ist.

Die verschiedenen Sperrmechanismen können Sie aktivieren und deaktivieren, indem Sie den Profilparameter SLOCK entsprechend setzen. Weitere Informationen zu diesem Profilparameter siehe Parameter-Referenz-Dokumentation.

  • Quellcode-Objekte in lokalen Umgebungen und in SPoD-Umgebungen sperren
    SLOCK=PRE aktiviert die Sperrung von Quellcode-Objekten, die entweder lokal oder in einer SPoD-Umgebung oder mit Natural ISPF oder in gemischten Umgebungen editiert werden.

    SLOCK=PRE ist die empfohlene Einstellung für das Arbeiten in gemischten Umgebungen.

  • Quellcode-Objekte in SPoD-Umgebungen sperren
    Die Standardeinstellung SLOCK=SPOD aktiviert die Sperrung von Quellcode-Objekten nur in einer SPoD-Umgebung. Ein Quellcode-Objekt wird dann nur gesperrt, wenn es mit Natural Studio bearbeitet wird. Weitere Informationen siehe Remote Development Using SPoD in der Natural for Windows-Dokumentation.

    In einer SPoD-Umgebungen sorgt die Einstellung SLOCK=SPOD für Kompatibilität mit früheren Natural-Versionen, die die Sperrung unter SPoD unterstützten.

  • Auf letzte Änderungen prüfen
    Wenn SLOCK=POST gesetzt wird, kann das Quellcode-Objekt, das momentan bearbeitet wird, in den Editor-Arbeitsbereich gelesen und von mehreren Benutzern geändert werden. Es kann dann aber nur der Benutzer, der eine Änderung zuerst speichert, das Quellcode-Objekt aktualisieren. Dies geschieht durch den Vergleich der Zeitmarke des in der Datenbank gespeicherten Quellcode-Objekts mit der Zeitmarke des Quellcode-Objekts beim Einlesen in den Editor-Arbeitsbereich. Alle anderen Benutzer erhalten eine entsprechende Fehlermeldung, wenn sie die Source zu speichern versuchen.

    Anmerkung:
    Dieses Konzept ist nicht kompatibel mit dem SPoD-Sperrkonzept früherer Natural-Versionen.

  • Sperrmechanismen deaktivieren
    SLOCK=OFF deaktiviert alle Sperrmechanismen.

Die folgenden Abschnitte beschreiben das Prinzip der Quellcode-Objekt-Sperrung, wenn der Profilparameter SLOCK=PRE in einer lokalen Umgebung gesetzt ist.


Quellcode-Objekte bearbeiten

Bei folgenden Natural-Objekttypen werden die Quellcode-Objekte gesperrt, während sie mit dem entsprechenden Natural-Editor bearbeitet werden:

  • Programm

  • Subprogramm

  • Subroutine

  • Copycode

  • Helproutine

  • Text

  • Map

  • Local Data Area

  • Global Data Area

  • Parameter Data Area

  • DDM (Datendefinitionsmodul)

  • Function

Wenn Sie einen Natural-Editor aufrufen, wird die im Source-Arbeitsbereich enthaltene Source gesperrt. Falls das Quellcode-Objekt, das Sie bearbeiten möchten, schon von einem anderen Benutzer gesperrt worden ist (worauf Sie durch eine entsprechende Meldung hingewiesen werden, könne Sie die Source zwar im Editor anzeigen, jedoch wird oben im Bildschirm kein Objektname angezeigt. Wenn Sie die Source ändern und die Änderung aufbewahren möchten, müssen Sie die Source als neues Quellcode-Objekt unter einem neuen Namen speichern.

Anmerkung:
Wenn Sie eine Source mit dem Systemkommando READ in den Arbeitsbereich einlesen, erfolgt keine Sperrung des Quellcode-Objekts. Die Sperrung einer Source erfolgt nur dann, wenn Sie den Natural-Editor aufrufen.

Objekte speichern

Eine Source, die von einem anderen Benutzer gesperrt worden ist, können Sie nicht mittels SAVE- und STOW-Kommandos speichern.

Objekte entsperren

Eine im Source-Arbeitsbereich enthaltene gesperrte Source wird entsperrt, wenn eine der folgenden Maßnahmen ausführen:

  • Löschen des Source-Arbeitsbereichs

  • Einlesen der Source eines anderen Quellcode-Objekts in den Source-Arbeitsbereich

  • Anmelden bei einer anderen Library

  • Beenden der Natural Session

  • Verlassen des Natural-Editors, während die Option Leave Editor with Unlock im Editor-Profil gesetzt ist (siehe auch Allgemeine Standardwerte in Editorprofil im Abschnitt Allgemeine Informationen). Mit dieser Option wird festgelegt, ob die im aktuellen Source-Arbeitsbereich enthaltene Source beim Verlassen des Editors entsperrt wird. Dies gilt bei Maps und DDMs.

Um sich die gesperrten Quellcode-Objekte anzeigen zu lassen oder um sie, falls erforderlich, zu entsperren, können Sie das Systemkommando UNLOCK benutzen (siehe Systemkommandos-Dokumentation.

Objekte verschieben, löschen, umbenennen und ersetzen

Die Sperrung von Objekten wird auch berücksichtigt, wenn Sie das Systemkommando DELETE oder RENAME, den Object Handler oder die Utility SYSMAIN benutzen.

Wenn Sie ein Quellcode-Objekt verschieben, löschen, umbenennen und ersetzen, wird der Sperrzustand des Objekts geprüft:

  • Wenn das Quellcode-Objekt gesperrt ist, wird die Kommandoausführung verweigert.

  • Ist das Quellcode-Objekt nicht gesperrt, wird das Kommando ausgeführt.

Einschränkungen

Bei den Utilities SYSRPC, SYSPARM und SYSERR wird die Sperrung von Objekten nicht unterstützt.