Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Programmablauf in BS2000-Umgebung

Ein COBOL-Programm, das im BS2000 entwickelt und zum Ablauf gebracht wird, kann unter bestimmten Voraussetzungen außer katalogisierten BS2000-Dateien auch Dateien aus dem POSIX-Dateisystem verarbeiten.

Voraussetzungen

  • Beim Übersetzen muss die Compileroption ENABLE-UFS-ACCESS=YES bzw. die SDF-Option RUNTIME-OPTIONS=PAR(ENABLE-UFS-ACCESS=YES) angegeben werden.

  • Beim Binden muss das in der CRTE-Bibliothek SYSLNK.CRTE.POSIX enthaltene POSIX-Bindeschalter-Modul eingebunden werden, und zwar vorrangig vor den Modulen in der Bibliothek SYSLNK.CRTE bzw. SYSLNK.CRTE.PARTIAL-BIND. Beim Binden mit TSOSLNK oder BINDER sollte diese Bibliothek mit einer INCLUDE- bzw. INCLUDE-MODULES-Anweisung (ohne Angabe des Modulnamens) eingebunden werden.
    Beim dynamischen Binden mit dem DBL muss der Bibliothek eine BLSLIBnn mit niedrigerer nn zugewiesen werden als den nachrangig einzubindenden CRTE-Bibliotheken. Bei Programmentwicklung in der POSIX-Shell mit dem cobol-Kommando wird die CRTE-Bibliothek automatisch eingebunden.

Einschränkungen

Die Verarbeitung einer BS2000- oder POSIX-Datei unterliegt folgenden Einschränkungen:

  • keine Kennsatzbehandlung möglich.

  • keine Fixpunktausgabe für Wiederanlauf möglich.

  • keine Simultanverarbeitung möglich.

  • keine Unterstützung von Pseudo-Dateien (siehe ADD-FILE-LINK im BS2000/OSD Benutzerhandbuch „Kommandos“ [3].

  • Die Dateiattribute werden beim ersten Öffnen der Datei endgültig festgelegt und können später nicht mehr geändert werden.

  • Relative Dateien, die die BS2000-Zugriffsmethode UPAM verwenden, können nicht verarbeitet werden.

  • In der ALPHABET-Klausel spezifizierter Zeichensatz STANDARD-2
    (International Reference Version of the ISO 7-Bit Code) wird in der CODE-SET Klausel nicht unterstützt. Ein derartiger OPEN wird zur Laufzeit mit FILE STATUS 30 abgewiesen.

  • In den Meldungen COB9151 und COB9175 bei Fehlern beim POSIX-Dateizugriff wird statt DMS-Codes die entsprechenden SIS-Meldungsnummern eingesetzt. Das gleiche gilt auch für den an das COBOL-Objekt zurückgegebenen „extended“ File Status. Auch der zurückgegebene File Status kann vom bisher erwarteten Wert abweichen (siehe Abschnitt „Ein-/Ausgabezustände").

  • Die Nutzung von Dummy-Dateien wird nicht unterstützt.

  • Dateien >32 Gbyte können verarbeitet werden, ohne dies im /ADD-FILE-LINK-Kommando extra einschalten zu müssen.

Zuweisen einer POSIX-Datei

Die Zuweisung einer POSIX-Datei erfolgt mit einer S-Variablen namens
SYSIOL-externer-name, wobei SYSIOL- ein fester Namensbestandteil ist undexterner-name den Linknamen aus der ASSIGN-Klausel des Programms enthalten muss. externer-name darf keine Kleinbuchstaben enthalten.

Die S-Variable wird mit dem Kommando SET-VARIABLE folgendermaßen initialisiert:

/[SET-VAR] SYSIOL-externer-name= {  ’*POSIX(dateiname)‘
                                  | ’*POSIX(relative-pfadname) 
                                  | ’*POSIX(absolute-pfadname)
                                 }

dateiname bezeichnet die angeforderte POSIX-Datei, wenn sie im Home-Verzeichnis des POSIX-Dateisystems steht.

relativer-pfadname ist der Dateiname mit den Dateiverzeichnisbestandteilen ab dem Home-Verzeichnis.

absoluter-pfadname ist der Dateiname mit allen Dateiverzeichnisbestandteilen einschließlich Root-Verzeichnis (Beginn mit /).

Beispiel 14-7

für gemischte Dateiverarbeitung

COBOL-Übersetzungseinheit:

...
FILE-CONTROL.
    SELECT POSFILE ASSIGN TO "CUST1"
    SELECT BS2FILE ASSIGN TO "CUST2"
...


Zuweisung der POSIX-Datei vor Aufruf des Programms:

/SET-VAR SYSIOL-CUST1=‘*POSIX(/USERIDXY/customers/cust1)’


Zuweisung der BS2000-Datei vor Aufruf des Programms:

/ADD-FILE-LINK CUST2,CUST.FILE