Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Dateien für das Sortierprogramm

Für einen Sortiervorgang werden folgende Dateien benötigt:

Sortierdatei

In dieser Datei (Arbeitsbereich) werden Datensätze sortiert. Ihr Name wird z.B. vereinbart über die Klausel

SELECT sortierdatei ASSIGN TO "SORTWK"

Außerdem muss diese Datei in der Sortierdateierklärung (SD) der DATA DIVISION beschrieben sein. Mit der Anweisung

SORT sortierdatei ...

wird auf diese Datei zugegriffen.

Ohne dass der Benutzer ein ADD-FILE-LINK-Kommando angibt, wird diese Datei unter dem Namen SORTWORK.tsn.jjmmtt.hhmmss (tsn Prozessfolgenummer, jj Jahresangabe, mm Monatsangabe, tt Tagesangabe, hhmmss sechsstellige Uhrzeitangabe) katalogisiert. Der Linkname ist SORTWK. Nach normalem Sortierende wird diese Datei gelöscht.

Die Größe der Sortierdatei beim Einrichten ohne ADD-FILE-LINK-Kommando beträgt standardmäßig 24 x 16 = 384 PAM-Seiten (durch Versorgen von SORT-Sonderregistern kann dieser Wert beeinflusst werden). Demnach ist die Primärzuweisung 384 PAM-Seiten. Die Sekundärzuweisung ist 1/4 davon, also 96 PAM-Seiten.

Mit dem Kommando

/MODIFY-FILE-ATTRIBUTES dateiname,-
/ SUPPORT=PUBLIC-DISK(SPACE=RELATIVE(PRIMARY-ALLOCATION=..,-
/ SECONDARY-ALLOCATION=...))

kann der Benutzer die Größe der Sortierdatei selbst bestimmen (siehe Handbuch [6]). Empfehlenswert ist dies bei großen Dateien. Nach normalem Sortierende wird diese Datei geschlossen, aber nicht gelöscht.

SORT-Sonderregister (siehe Handbuch „COBOL2000-Sprachbeschreibung“ [1]):

Vor dem Sortieren kann der Programmierer folgende SORT-Sonderregister versorgen:

  • SORT-FILE-SIZE: mit der Anzahl der Sätze.

  • SORT-MODE-SIZE: mit der durchschnittlichen Satzlänge.

Diese beiden Register verwendet das Dienstprogramm SORT zur Berechnung der Dateigröße, d.h., der Programmierer kann indirekt den SPACE-Operanden beeinflussen.

  • SORT-CORE-SIZE: mit der gewünschten Größe der internen Arbeitsbereiche in Byte.

    Durch diese Angaben kann der Programmablauf beeinflusst werden.

    Bei fehlender Angabe werden standardmäßig 24 x 4096 Byte, d.h. 24 Seiten zu je 4 Kbyte angenommen. Näheres siehe Handbuch [6], Optimierung von Sortierläufen.

Nach SORT- und RELEASE- und vor RETURN-Anweisungen kann der Programmierer das SORT-Sonderregister SORT-RETURN abfragen:

„0“ zeigt das ordnungsgemäße Sortieren an,
„1“ das fehlerhafte Sortieren.
Diese Abfrage empfiehlt sich, da bei fehlerhaftem Sortieren der Programmlauf nicht abgebrochen wird.

Die fehlerhafte Belegung eines SORT-Sonderregisters bewirkt die Fehlermeldung COB9134 (siehe Kapitel „Meldungen des COBOL2000-Systems").

Eingabedatei(en)

Ist keine Eingabeprozedur definiert, generiert COBOL2000 einen OPEN INPUT und einen READ...AT END für die angegebene Datei. Jede Eingabedatei muss im COBOL-Programm definiert sein.

Die Linknamen SORTIN und SORTINnn (01 ≤ nn ≤ 99) dürfen nicht innerhalb eines Sortierprogramms verwendet werden.

Ausgabedatei

Ist keine Ausgabeprozedur definiert, generiert COBOL2000 einen OPEN OUTPUT und einen WRITE für die angegebene Datei. Die Ausgabedatei muss im COBOL-Programm definiert sein.

Der Linkname SORTOUT darf nicht innerhalb eines Sortierprogramms verwendet werden.

SORT-Parameterdateien

SORT erlaubt die Festlegung und Änderung von voreingestellten Werten für einige Parameter (siehe Anweisung MODIFY-SORT-DEFAULTS in [6]).

Die meisten dieser Werte wirken nicht bei SORT-Anweisungen in COBOL-Programmen. Daher werden solche Parameterdateien nur bei der ersten SORT-Anweisung in einer COBOL-Ablaufeinheit ausgewertet. Nachträgliche Änderungen bleiben für den weiteren Programmablauf wirkungslos. Dies führt zu einer Beschleunigung von COBOL-Programmen, die dynamisch sehr viele SORT-Anweisungen mit wenigen zu sortierenden Sätzen ausführen.