SORT - Steuerung des Sortierprogramms

#### Search Results

Search

# SORT - Steuerung des Sortierprogramms

Dieser Natural-Profilparameter dient zur Steuerung des Sortierprogramms bei `SORT`-Statements. Es entspricht dem Makro `NTSORT` im Natural-Parametermodul.

Mögliche Werte | Siehe SORT Parameter-Syntax und Schlüsselwort-Subparameter.
Standard-Einstellung | Siehe Schlüsselwort-Subparameter.
Dynamische Angabe | ja | Dieser Parameter kann nur dynamisch angegeben werden. Im Natural-Parametermodul wird stattdessen das Makro `NTSORT` verwendet.
Angabe innerhalb der Session | nein |

Anmerkungen:

1. Mit den Schlüsselwort-Subparametern von `SORT` oder `NTSORT` können Sie verschiedene Optionen angeben, die die Handhabung des Sortierprogramms steuern, wenn ein `SORT`-Statement ausgeführt wird.
2. Das zu verwendende Sortierprogramm kann entweder das Natural-interne Programm (Standard-Einstellung für alle Umgebungen) oder ein externes Sortierprogramm sein. Die Art der Sortierung ist abhängig von der Einstellung des Schlüsselwort-Subparameters `EXT`.

Dieses Dokument behandelt folgende Themen:

- SORT-Parameter-Syntax

- NTSORT-Makro-Syntax

- Schlüsselwort-Subparameter

- Beispiel für SORT-Parameter

- Beispiele für NTSORT-Macros

## SORT-Parameter-Syntax

Der Profilparameter `SORT` wird wie folgt angegeben:

SORT=(keyword-subparameter=value,keyword-subparameter=value,...)

Namen und Werte der Schlüsselwort-Subparameter siehe Schlüsselwort-Subparameter.

## NTSORT-Makro-Syntax

Das Makro `NTSORT` wird wie folgt angegeben:

             NTSORT EXT=value,                                             *
                   EXTEOJ=value,                                           *
                   EXTNAME=value,                                          *
                   EXTOPT=value,value,...,                                 *
                   STORAGE=value,                                          *
                   WRKSIZE=value

Namen und Werte der Schlüsselwort-Subparameter siehe Schlüsselwort-Subparameter.

## Schlüsselwort-Subparameter

`EXT` | `EXTEOJ` | `EXTNAME` | `EXTOPT` | `STORAGE` | `WRKSIZE`

### EXT - Verwendung eines externen Sortierprogramms

`EXT=value` gibt an, ob ein externes Sortierprogramm verwendet werden soll oder nicht.

Wert | Erklärung
--- | ---
`ON` | Ein externes Sortierprogramm wird verwendet. Dies ist nur in Batch-Modus-Umgebungen einschließlich IMS/BMP und TSO möglich.
`OFF` | Das Natural-Sortierprogram wird verwendet. Dies ist der Standardwert.

### EXTEOJ - Maßnahme im Fehlerfall

`EXTEOJ=value` gibt die Maßnahme an, die durchgeführt werden soll, wenn bei der Ausführung des externen Sortierprogramms ein Fehler festgestellt wird.

Wert | Erklärung
--- | ---
`ON` | Falls ein Fehler festgestellt wird, wird die `SORT`-Verarbeitung beendet. Die Einstellung `ON` erfordert, dass das verwendete Sortierprogramm in der Lage ist, einen Return Code 16 von den beiden `SORT`-Exit-Routinen `E15` und `E35` festzustellen.
`OFF` | Falls ein Fehler festgestellt wird, hält Natural weitere Aufrufe an das Sortierprogramm zurück und ignoriert jeden Datensatz, der an die `SORT`-Exit-Routine `E35` übergeben wird. Dies ist die Standard-Einstellung.

### EXTNAME - Name des externen Sortierprogramms

`EXTNAME=value` gibt den Namen (1 bis 8 Zeichen) des zu verwendenden externen Sortierprogramms an. Der Standard-Name ist `SORT`.

Wert | Erklärung
--- | ---
1 bis 8 Zeichen. | Name des externen Sortierprogramms.
`SORT` | Dies ist der Standardwert.

### EXTOPT - Zusätzliche Optionen für externes Sortierprogramm

`EXTOPT=(value,value,...)` gibt zusätzliche Optionen für das externe Sortierprogramm an.

Natural generiert die nötigen Feld- und Format-Parameter und übergibt sie an das externe Sortierprogramm. Mit `EXTOPT` können Sie zusätzliche Parameter angeben, die an das externe Sortierprogramm übergeben werden sollen. Sie können nur Parameter angeben, die Bestandteil der Steueranweisungssyntax Ihres externen Sortierprogramms sind.

Sie können bis zu zwei Optionszeichenketten angeben, die mit einem Schrägstrich (/) abgegrenzt werden. Die erste Optionszeichenkette wird an die `SORT`-Steueranweisung angehängt, die zweite Optionszeichenkette wird verwendet, um eine `OPTION`-Steueranweisung zu erstellen. Sie können die Optionszeichenkette vor bzw. nach dem Schrägstrich weglassen. Wenn Sie die Optionszeichenkette nach dem Schrägstrich weglassen, wird überhaupt keine `OPTION`-Steueranweisung erzeugt.

Sie müssen die gesamte Optionszeichenkette in Hochkommas ('...') stellen. Aus Kompatibilitätsgründen besteht immer noch die Möglichkeit, die Optionszeichenkette stattdessen in Klammern zu setzen.

Aus Kompatibilitätsgründen wird eine einzelne Zeichenkette ohne voran- oder nachgestellten Schrägstrich abweichend behandelt. Bei z/OS werden die Optionen an die `SORT`-Steueranweisung angehängt:

#### EXTOPT-Beispiel:

Die zusätzlichen Parameter können wie folgt angegeben werden:

    EXTOPT=(SIZE=E2000000,NOEQUALS,DYNALLOC=(3350,8))
    EXTOPT='SIZE=E2000000,NOEQUALS,DYNALLOC=(3350,8)'
    EXTOPT='SIZE=E2000000,NOEQUALS,DYNALLOC=(3350,8)/NOCHECK'
    EXTOPT='/NOCHECK'
    EXTOPT='WORK=4/'

### STORAGE - Typ des Speichermediums

`STORAGE=value` gibt den Typ des Speichermediums an, das vom Natural-internen Sortierprogramm benutzt werden soll.

Wert | Erklärung
--- | ---
`MAIN` | Nur der verbleibende `WRKSIZE`-Speicher wird benutzt; es steht kein sonstiger Zwischenspeicher zur Verfügung. Dies ist der Standardwert.
`BP` | Der Sortier-Buffer Pool wird als Zwischenspeicher benutzt. Siehe Hinweise weiter unten.
`SD` | SD-Dateien werden als Zwischenspeicher benutzt. Dieser Wert wird nur unter Com-plete berücksichtigt.
`SMARTS` | Das SMARTS Portable File System wird benutzt.

Anmerkung
Generell versucht das `SORT`-Statement zunächst, den restlichen Speicher in der `WRKSIZE` zu benutzen. Falls dieser Speicher für die Anzahl der Datensätze nicht ausreicht, versucht das `SORT`-Statement zusätzlich Zwischenspeicher für die Verarbeitung der Datensätze zu benutzen.

#### Hinweise zu SD-Dateien unter Com-plete/SMARTS

- Die für die Sortierverarbeitung benutzten SD-Dateien werden alles temporäre SD-Dateien für eine Stack-Ebene zugeordnet. Die Namenssyntax der Sortier-SD-Dateien lautet daher wie folgt:

      &&STsnnn

  Dabei ist:

  Syntax-Element | Beschreibung
  --- | ---
  `&&` | Indikator für eine temporäre SD-Datei.
  `ST` | Standard-Präfix der für die Sortierverarbeitung benutzten Sortier-SD-Datei.
  `s` | Stack-Ebene.
  `nnn` | Folgenummer innerhalb eines einzelnen Sortierlaufs.

- SMARTS-Arbeitsdateien befinden sich im SMARTS Portable File System. Der Pfad muss mit der SMARTS-Umgebungsvariablen `$NAT_WORK_ROOT` angegeben werden. Für eine zur Sortierverarbeitung benutzte SMARTS-Arbeitsdatei wird ein spezielles Verzeichnis mit dem Namen `SORT` hinzugefügt, und für jeden Benutzer wird ein getrenntes, mit der Benutzerkennung benanntes Verzeichnis angelegt. Das resultierende Verzeichnis ist dann `$NAT_WORK_ROOT/SORT/userid`. Der Name der zur Sortierverarbeitung benutzten Arbeitsdatei entspricht dem Namen der temporären SD-Datei unter Com-plete.

#### Hinweis zur Benutzung des Sortier-Buffer Pool

Die Verwendung eines Sortier-Buffer Pool ist nur dann sinnvoll, wenn Sie den `WRKSIZE`-Wert nicht mehr weiter vergrößern können, um die Sortierdatensätze zu speichern. Dies gilt typischerweise für Online-Umgebungen, in denen die Speicher-Thread-Größe begrenzt ist. In allen anderen Fällen brauchen Sie nur einen ausreichend großen `WRKSIZE`-Wert anzugeben.

Wenn Sie einen Sortier-Buffer Pool benutzen wollen, setzen Sie den Schlüsselwort-Subparameter `STORAGE=BP`, um anzugeben, dass ein Sortier-Buffer Pool als zusätzlicher Speicher zu dem mit `WRKSIZE` definierten Puffer benutzt werden soll. Außerdem müssen Sie mit dem Profilparameter `BPI` bzw. dem Makro `NTBPI` einen Buffer Pool vom Typ `TYPE``=SORT` mit dem `NAME``=name` in Natural anmelden. Beispiel: `BPI=(TYPE=SORT,NAME=XYZ)`. Wenn mit dem Subparameter `NAME` des Profilparameters `BPI` ein Name angegeben wird, dann bezieht sich diese Angabe auf einen globalen Sortier-Buffer Pool; ein lokaler Sortier-Buffer Pool kann dagegen mit `NAME=' '` (leer) angegeben werden.

### WRKSIZE - Größe des vom Sortierprogramm benutzten Arbeitspuffers

`WRKSIZE=value` gibt die Größe des vom Sortierprogramm benutzten Arbeitspuffers an.

Wert | Erklärung
--- | ---
`0` oder `10 - 2097151` | Größe des Arbeitspuffers (in KB). Bei `WRKSIZE=0` können keine Sortieroperationen durchgeführt werden.
`10` | Dies ist der Standardwert.

Anmerkung
Der mit `WRKSIZE` angegebene Arbeitspuffer dient zur Aufnahme interner Sortiersteuerdaten. Der restliche Speicher wird benutzt, um die Datensätze zu sammeln und zu sortieren. Die Größe der Sortiersteuerdaten ist von verschiedenen Faktoren abhängig (`WRKSIZE` selbst, Datensatzlänge, Anzahl der Sortierschlüssel, deren Größe und Format) und kann daher nicht formelhaft berechnet werden.

## Beispiel für SORT-Parameter

#### Beispiel 1:

    SORT=(EXT=OFF,WRKSIZE=1024)

Für die Sortierverarbeitung wird das Natural-interne Sortierprogramm und ein Arbeitspufferspeicher von 1 MB benutzt.

#### Beispiel 2:

    SORT=(EXT=ON,EXTOPT='/EQUALS')

Für die Sortierverarbeitung wird ein externes Sortierprogramm mit einer Steueranweisung `OPTION EQUALS` benutzt.

## Beispiele für NTSORT-Macros

             NTSORT EXT=OFF,                                               *
                   WRKSIZE=1024

             NTSORT EXT=ON,                                                *
                   EXTOPT='/EQUALS'

Im ersten Beispiel wird für die Sortierverarbeitung das Natural-interne Sortierprogramm und ein Arbeitspufferspeicher von 1 MB benutzt. Im zweiten Beispiel wird für die Sortierverarbeitung ein externes Sortierprogramm mit einer Steueranweisung `OPTION EQUALS` benutzt.

### On this page

- SORT-Parameter-Syntax
- NTSORT-Makro-Syntax
- Schlüsselwort-Subparameter
- Beispiel für SORT-Parameter
- Beispiele für NTSORT-Macros