Betrieb des Natural Roll Server

#### Search Results

Search

# Betrieb des Natural Roll Server

Dieses Kapitel behandelt die folgenden Themen:

- Roll Server-Systemanforderungen

- Roll File formatieren

- Natural Roll Server starten

- Roll Server-Meldungen, Condition Codes und Abend Codes

- Return Codes und Reason Codes der Roll Server-Anforderung

- Roll Server-Betriebsfunktionen

- Struktur der Coupling Facility zurücksetzen

- Roll Server-Leistung optimieren

- Roll Server User Exits

Siehe auch Natural Roll Server-Funktionen.

## Roll Server-Systemanforderungen

In diesem Abschnitt werden die Systemerfordernisse für den Roll-Server beschrieben.

- APF-Autorisierung

- System Linkage Index

- Virtueller Speicher

- CF-Struktur (Roll Server)

- XCF-Signalisierungspfade

### APF-Autorisierung

Verlinken Sie das Modul `NATRSMvr` (vr steht für die entsprechende Produktversion) mit einer APF-Library, indem Sie den `IEWL`-Parameter `AC(1)` angeben. Siehe Natural auf z/OS installieren.

### System Linkage Index

Da der Roll Server einen System Linkage Index (System LX) reserviert, müssen Sie überprüfen, ob der Wert von `NSYSLX` im Member `IEASYSxx` der Library `SYS1.PARMLIB` hoch genug ist.

Wenn der Roll Server beendet wird, ist seine Adressraumkennung (ID) nicht mehr verfügbar, da ein System LX verwendet wurde. Die Kennung wird mit dem nächsten IPL wieder verfügbar.

Sobald ein System LX reserviert wurde, wird er bei jedem Neustart des Roll Server bis zum nächsten IPL wieder verwendet.

### Virtueller Speicher

Speicher | Größe
--- | ---
ECSA | 84 Bytes
Privater Programmspeicher | 30 KB oberhalb *
Fester Subpool-Speicher (inkl. ELSQA): | 10 KB unterhalb, 50 KB oberhalb *
LRB directory | 32+(64*Anzahl der LRB Slots)
100 Slots pro Roll File | 4 KB oberhalb *
Jedes weitere Roll File | 30 KB oberhalb *
Arbeitsspeicher | je nach Auslastung, ca. 1 MB oberhalb *

* unterhalb bzw. oberhalb der Grenze

### CF-Struktur (Roll Server)

Eine CF-Struktur wird verwendet, um das Roll File Directory in einer z/OS-Parallel-Sysplex-Umgebung zu führen.

Die Größe einer CF-Struktur kann mit dem IBM-System z Coupling Facility Structure Sizer Tool (CFSizer Utility) berechnet werden, das Sie hier finden:

https://www.ibm.com/support/pages/cfsizer

Sie müssen in der Auswahlbox, dort wo `Choose one` steht, `XCF` wählen.

Es wird ein neues Fenster angezeigt, das beispielsweise vorbelegt ist mit

Number of systems `8` und CLASSLEN `956`

(= 936 + 20 -> CONA + CONALOCKATTR).

Siehe Makro `IXLYCONA` bezüglich dieser Größen:

    01 SIZE:
    *            CONA          -- X'03A8' bytes = 936
    *            CONALOCKATTR  -- X'0014' bytes =  20
    *            CONALISTATTR  -- X'0028' bytes =  40
    *            CONACACHEATTR -- X'001C' bytes =  28

Der Roll Server verwendet nur `CONA = 936 bytes`.

Wenn Sie `Number of systems = n (LPARs)` auswählen und auf `Submit` drücken, erhalten Sie beispielsweise bei 5 LPARs mit 936 Bytes:

Function | Type | Structure Name | INITSIZE | SIZE
--- | --- | --- | --- | ---
XCF | LIST | IXC...... | 18M | 19M

Danach folgt eine Reihe von Zeilen mit JCL.

### XCF-Signalisierungspfade

In einer z/OS-Parallel-Sysplex-Umgebung kommunizieren die Roll Server über die XCF Signaling Services. Als Standard-XCF-Gruppenname werden die ganz linken acht Bytes des CF-Strukturnamens verwendet.

Wenn Sie einen eigenen XCF-Gruppennamen angeben möchten, sollten Sie den User Exit `NATRSU24` verwenden. Weitere Informationen zu diesem User Exit finden Sie unter User Exit NATRSU24.

## Roll File formatieren

Um das Roll File zu formatieren, gehen Sie wie folgt vor:

1. Legen Sie es als physischen, sequenziellen Dataset mit einem festen Dataset-Format an.

2. Formatieren Sie es unter Verwendung des Moduls `NATRSRFI`.

3. Wenn der Roll Server in einer z/OS-Parallel-Sysplex-Umgebung ausgeführt wird, setzen Sie die Struktur der Coupling Facility zurück, wie in Hinweise zum Formatieren oder Zurücksetzen von Roll Files beschrieben.

Bei der Formatierung wird das Role File in das BDAM-Format mit einer geräteabhängigen Blockgröße konvertiert.

Anmerkung
Wenn Sie ein bestehendes Roll File einer früheren Version verwenden wollen, genügt es, die Funktion `NATRSRFI RESET` auszuführen.

Zum Formatieren geben Sie die folgende Parameterfolge unter dem DD-Namen `RFIPARMS` oder als `PARM` im JCL `EXEC`-Statement ein:

function,dd-name,slot-size,number-of-slots

Alle Parameter sind positionsgebunden; sie werden in der nachstehenden Tabelle erläutert:

Parameter | Beschreibung
--- | ---
`function` | `FORMAT` | Formatiert das Roll File.
`RESET` | Alle Roll File-Slots werden zurückgesetzt (als frei markiert). Sie können diesen Parameterwert nur verwenden, wenn das Role File bereits formatiert wurde. Der einzige andere zulässige Parameter ist `dd-name`.
`LIST` | Druckt eine Liste der in dem Roll File enthaltenen Session-IDs und ihrer letzten Aktivität. Der einzige andere zulässige Parameter ist `dd-name`.
`dd-name` | Der Name des `DD`-Statement, unter dem das Roll File angegeben wurde.
`slot-size` | Die Größe eines Roll File-Slots in Bytes. Diese Größe wird auf das nächsthöhere Vielfache der verwendeten Blockgröße gerundet. Es wird empfohlen, zunächst eine Slot-Größe zu verwenden, die der Größe des Natural Threads entspricht. Schauen Sie sich dann die Statistiken des Roll Servers an. Sie zeigen auch die größte Ausprägung einer Thread-Größe an. Verwenden Sie diesen Wert, um die Slot-Größe ggf. zu verringern.
`number-of-slots` | Die Anzahl der zuzuordnenden Roll File Slots. Diese Zahl ist die maximale Anzahl der gleichzeitig aktiven Benutzer. Dieser Parameter ist optional. Wird er weggelassen, wird das gesamte Roll File so wie zugeordnet formatiert. Beachten Sie, dass während der Formatierung der Systemabbruchcode SB37 oder SD37 (oder S209 für eine VSAM-Datei) auftreten kann. Dieser Abbruch wird von der Formatierungsroutine abgefangen und kann ignoriert werden.

Zur Berechnung des erforderlichen Plattenplatzes in Zylindern für ein Roll File (Parameter `SPACE` des DD-Statements) können Sie die folgende Formel verwenden:

    number-of-cylinders = ceiling (number-of-slots * slot-size / (30*block-size))

Anzahl der Zylinder = Obergrenze (Anzahl der Slots * Slot-Größe / (30*Blockgröße))

oder in Spuren

    number-of-tracks = ceiling (number-of-slots * slot-size / (2*block-size))

Anzahl der Spuren = Obergrenze (Anzahl der Slots * Slot-Größe / (2*Blockgröße))

Die verwendete Blockgröße ist:

23476 für 3380 DASD

27998 für 3390 DASD

22928 für 9345 DASD

Darüber hinaus wird Platz für den Kopf des Roll File-Verzeichnisses (40 Byte) und einen Verzeichniseintrag für jeden Roll File-Slot (24 Byte) benötigt. Somit wird ein zusätzlicher Block für etwa 976 Slots auf 3380, 1164 Slots auf 3390 oder 953 Slots auf 9345 DASD benötigt.

### NATRSRFI-Ausgabe

Wenn ein `DD`-Statement mit `ddname` `RFIPRINT` angegeben ist, leitet `NATRSRFI` seine Ausgabe an diesen Dataset. Wird `RFIPRINT` weggelassen, so wird die Ausgabe unter Verwendung des `WTO`-Makros (`ROUTDCE=11`) in `JESMSGLG` geschrieben. Beachten Sie, dass `RFIPRINT` für die Funktion `LIST` angegeben werden muss.

#### NATRSRFI Condition Codes und Abend Codes:

Die folgenden Condition Codes werden verwendet:

Code | Erläuterung
--- | ---
`0` | Normale Beendigung.
`4` | Anzahl der formatierten Slots ist geringer als angefordert.
`20` | Parameterfehler.

Die folgenden User Abend Codes werden verwendet:

Abend Code | Ursache
--- | ---
`U0100` | Öffnen bei `RFIPARMS` oder `RFIPRINT` fehlgeschlagen.
`U0101` | Öffnen bei Roll. File fehlgeschlagen.

#### Beispiele:

In den folgenden Beispielen steht `vr` oder `vrs` für die jeweilige Produktversion.

Beispiel 1:

    //FBRUNRFI JOB  (FB,218),FB,CLASS=K,MSGCLASS=X,NOTIFY=FB
    //FORMAT   EXEC PGM=NATRSRFI
    //STEPLIB  DD  DISP=SHR,DSN=NATURAL.NATvr.LOAD
    //RF1      DD  DISP=SHR,DSN=FB.SYSF.ROLLF1
    //RF2      DD  DISP=SHR,DSN=FB.SYSF.ROLLF2
    //RFIPARMS DD  *
    FORMAT,RF1,200000,1000
    FORMAT,RF2,200000

Auszug aus dem daraus resultierenden `JESMSGLG`:

    +FBRUNRFI: FORMAT,RF1,200000,1000
    +FBRUNRFI: RF1: FB.SYSF.ROLLF1
    +FBRUNRFI:      Creation date: 2001/06/13 Volume: ADA002(3390)
    IEC031I D37-04,IFG0554P,FBRUNRFI,FORMAT,RF1,305B,ADA002,FB.SYSF.ROLLF1
    +FBRUNRFI: Not enough space for 1000 slots.
    +FBRUNRFI:       60 Blocks written. Block size is 27998.
    +FBRUNRFI:        1 Directory block.
    +FBRUNRFI:        8 Blocks per slot. Slot size is 223984.
    +FBRUNRFI:        7 Slots initialized. Roll file version vrs.
    +FBRUNRFI:        3 Blocks unused.
    +FBRUNRFI: FORMAT,RF2,200000
    +FBRUNRFI: RF2: FB.SYSF.ROLLF2
    +FBRUNRFI:      Creation date: 2001/06/08 Volume: USRF08(3380)
    IEC031I D37-04,IFG0554P,FBRUNRFI,FORMAT,RF2,020F,USRF08,FB.SYSF.ROLLF2
    +FBRUNRFI:       60 Blocks written. Block size is 23476.
    +FBRUNRFI:        1 Directory block.
    +FBRUNRFI:        9 Blocks per slot. Slot size is 211284.
    +FBRUNRFI:        6 Slots initialized. Roll file version vrs.
    +FBRUNRFI:        5 Blocks unused.

Beispiel 2:

    //FBRUNRFI JOB  (FB,218),FB,CLASS=K,MSGCLASS=X,NOTIFY=FB
    //FORMAT   EXEC PGM=NATRSRFI,PARM='FORMAT,RF1,200000'
    //STEPLIB  DD  DISP=SHR,DSN=NATURAL.NATvr.LOAD
    //RF1      DD  DISP=SHR,DSN=FB.SYSF.ROLLF1
    //RFIPRINT DD  SYSOUT=X

Resultierendes `RFIPRINT`:

    Natural Roll Server - Roll File Utility Version
    vrs
    FORMAT,RF1,200000
    RF1: FB.SYSF.ROLLF1
    Creation date: YYYY/MM/DD Volume: ADA002(3390)
    60 Blocks written. Block size is 27998.
    1 Directory block.
    8 Blocks per slot. Slot size is 223984.
    7 Slots initialized. Roll file version vrs.
    3 Blocks unused.

### Hinweise zum Formatieren oder Zurücksetzen von Roll Files

- Sie können mehrere Roll Files auf einmal formatieren oder zurücksetzen, indem Sie mehrere Parameterzeilen in `RFIPARMS` angeben.

- Sie können ein Roll File nicht formatieren oder zurücksetzen, während der Roll Server aktiv ist.

- Wenn das Roll File in einer z/OS-Parallel-Sysplex-Umgebung formatiert wird, muss auch die Struktur der Roll Server Coupling Facility mit dem Operator-Kommando `SETXCF` gelöscht werden, z. B.:

      SETXCF FORCE,STR,STRNAME=NATROLL1

## Natural Roll Server starten

Sie können den Roll Server entweder als Batch-Job starten oder als Started Task, indem Sie das Modul `NATRSMvr` ausführen (wobei `vr` für die jeweilige Produktversion steht). Das oder die Roll Files müssen als `DD`-Statements mit `ddname` `ROLLF1` bis `ROLLF5` definiert sein.

Sie können Parameter im JCL EXEC-Statement, in einer Parameterdatei oder in beiden angeben. Ein Parameter, der in der EXEC-Anweisung angegeben wird, überschreibt den entsprechenden Parameter in der Parameterdatei.

Wir empfehlen die Verwendung einer Parameterdatei. Der Parameter `TIMEOUTREPEAT` (siehe Parameter in der Parameterdatei) und zukünftige Parameter können nur in der Parameterdatei angegeben werden. Bestehende JCL wird unverändert weiter ausgeführt.

In diesem Abschnitt werden die folgenden Themen behandelt:

- Parameter im JCL EXEC-Statement

- Parameter in der Parameterdatei

- Beispiele für das Starten des Roll Servers als Batch Job

### Parameter im JCL EXEC-Statement

Anmerkung
Der lokale Roll Buffer befindet sich in einem Speicherobjekt "oberhalb der Grenze". Verwenden Sie den `MEMLIMIT`-Parameter im `EXEC`-Statement, um sicherzustellen, dass genügend Speicher "oberhalb der Grenze" zugewiesen werden kann.

Geben Sie in dem JCL EXEC-Statement als `PARM` die folgenden Parameter an:

    subsystem-id,number-of-roll-files,number-of-LRB-slots,LRB-slot-size,CF-structure-name,low-water-mark,high-water-mark,non-activity-time,timeout-check-time,message-case

Subsystemkennung, Anzahl der Roll Files, Anzahl der LRB-Slots, LRB-Slot-Größe, CF-Strukturname, niedrigste Zuordnungsmarke, höchste Zuordnungsmarke, Inaktivitätszeit, Zeitüberschreitungsprüfzeit, Groß-/Kleinschreibung in Meldungen

Alle Parameter sind positionsgebunden und müssen durch ein Komma voneinander abgetrennt werden. Sie werden in der nachstehenden Tabelle erläutert:

Parameter | Parametername für Parameter-Dataset | Mögliche Werte | Standardwert | Kommentar
--- | --- | --- | --- | ---
`subsystem-id` | `SUBSID` | 4-Byte-Zeichenkette ohne Leerzeichen | `NATv` | Der angegebene Wert muss mit dem Wert des Natural-Profilparameters `SUBSID` (v = Versionsnummer) übereinstimmen. Anmerkung Bei Natural unter CICS ist der Parameter `ROLLSRV` im Makro `NCMDIR` zur Einstellung der entsprechenden Subsystemkennung zu beachten.
`number-of-roll-files` | `NUMFILES` | `0 - 5` | `1` | In einer Nicht-Parallel-Sysplex-Umgebung unter z/OS kann der Roll Server ohne Roll File arbeiten und nur den speicherinternen Local Roll Buffer verwenden.
`number-of-LRB-slots` | `NUMSLOTS` | `1 - 32767` | keiner | Die Anzahl der LRB-Slots multipliziert mit der Slot-Größe darf 2 GB nicht überschreiten. Für jeden LRB, d. h. für jedes verwendete Roll File, wird die gleiche Anzahl an LRB-Slots zugewiesen. Die Gesamtzahl der LRB-Slots wird nach folgender Formel berechnet: number-of-roll-files * number-of-LRB-slots
`LRB-slot-size` | `SLOTSIZE` | beliebiger numerischer Wert | Roll File Slot-Größe | Wert in Anzahl von Bytes. Dieser Parameter muss angegeben werden, wenn kein Roll File verwendet wird. Wenn Roll Files verwendet werden, wird dieser Parameter ignoriert und stattdessen die Slot-Größe der Roll Files verwendet. Wenn keine Roll Files verwendet werden, d. h. die Anzahl der Roll Files (`number-of-roll-files`) gleich Null ist, ist dieser Parameter obligatorisch.
`CF-structure-name` | `STRUCTURE` | beliebiger gültiger Strukturname | keiner | Wenn Sie weniger als 16 Zeichen angeben, werden Leerzeichen angefügt. Geben Sie diesen Parameter nur an, wenn Sie die Coupling Facility (mit z/OS Parallel Sysplex) verwenden. Andernfalls kann die Verwendung dieses Parameters unnötigen Overhead verursachen.
`low-water-mark` | `LOWWATER` | `0 - 9` | `7` (einzelnes z/OS) `0` (Sysplex) | Gibt die niedrigste Zuordnungsmarke in Schritten von 10 Prozent der Anzahl der LRB-Slots an. Der `low-water-mark`-Wert kann nicht höher sein als der aktuelle `high-water-mark`-Wert. Dieser Wert wird immer ignoriert und auf `0` zurückgesetzt, wenn `CF-structure-name` einen Wert hat, unabhängig davon, was angegeben wurde.
`high-water-mark` | `HIGHWATER` | `0 - 10` | `8` (einzelnes z/OS) `0` (Sysplex) | Analog zum Parameter `low-water-mark`. Der Wert `10` bedeutet, dass die Einstufungs-Task (Staging-Task) nie aktiviert wird. Es wird nur empfohlen, den Wert `10` anzugeben, wenn das LRB groß genug ist, um alle gleichzeitig aktiven Natural-Sitzungen zu bedienen. Der `high-water-mark`-Wert kann nicht niedriger sein als der aktuelle `low-water-mark`-Wert. Dieser Wert wird immer ignoriert und auf `0` zurückgesetzt, wenn `CF-structure-name` einen Wert hat, unabhängig davon, was angegeben wurde.
`non-activity-time` | `NONACTIVITY` | `1 - 999999` | keiner | Die Anzahl der Stunden, die eine Sitzung inaktiv sein kann, bevor sie aus dem Roll File gelöscht wird. Wird diese Zeit überschritten, dann wird die Sitzung bei der nächsten geplanten Zeitüberschreitungsprüfung gelöscht. Wenn dieser Parameter weggelassen wird, wird keine Zeitüberschreitungsprüfung durchgeführt. Dieser Parameter kann mit dem Operator-Kommando `TIMEOUT` geändert werden, siehe unten. Sowohl der Authorized Services Manager als auch der Roll Server gestatten die Angabe eines Timeout-Wertes. Wenn Natural in einer SYSPLEX-Umgebung ausgeführt wird, müssen Sie für diesen Parameter und den `NONACTIVITY`-Parameter des Authorized Services Manager denselben Wert setzen.
`timeout-check-time` | `TIMEOUTCHECK` | `0000 - 2359` | keiner | Die Tageszeit, zu der die Zeitüberschreitungsprüfung durchgeführt werden soll. Sitzungen werden gelöscht, wenn sie länger als die durch den vorhergehenden Parameter festgelegte Inaktivitätszeit inaktiv waren. Wird dieser Parameter weggelassen, dann wird keine Zeitüberschreitungsprüfung eingeplant. Dieser Parameter kann mit dem Operator-Kommando `TIMEOUT` geändert werden, siehe unten.
`message-case` | `MSGCASE` | `UCTRAN` oder leer | leer | Geben Sie `UCTRAN` an, wenn der Roll Server alle seine Meldungen in Großbuchstaben ausgeben soll.
`repeat-timeout-check` | `TIMEOUTREPEAT` | `0000 - 1440` | keiner | Anzahl der Minuten zwischen aufeinanderfolgenden Zeitüberschreitungsprüfungen. Damit kann eine Zeitüberschreitungsprüfung mehrmals am Tag erfolgen.

### Parameter in der Parameterdatei

Die Parameterdatei ist eine physische sequenzielle Datei (DSORG=PS). In Ihrer JCL geben Sie diese Datei mit `DDNAME RSMPARM` an.

Die Parameter in der Parameterdatei werden als `name=value`-Paare angegeben. Geben Sie einen Parameter pro Zeile an, beginnend in Spalte 1. Das `name=value`-Paar wird durch das erste Leerzeichen abgeschlossen, und der Rest der Zeile wird nicht geprüft. Zeilen, die mit einem Stern (*) in Spalte 1 beginnen, werden als Kommentare behandelt. Parameter werden in Großbuchstaben umgesetzt, bevor sie verarbeitet werden.

Sie können auch einen Punkt als Füllzeichen verwenden, so dass die "="-Zeichen in derselben Spalte ausgerichtet werden können. Dies ist jedoch nicht mit dem Parameter `TIMEOUT` möglich.

Parameter | Mögliche Werte | Standardwert | Kommentar
--- | --- | --- | ---
`SUBSID` | 4-Byte-Zeichenkette ohne Leerzeichen | `NATv` | Der angegebene Wert muss mit dem Wert des Natural-Profilparameters `SUBSID` übereinstimmen (v steht für Versionsnummer). Anmerkung Bei Natural under CICS siehe den Parameter `CICSPLX` im `NCMDIR`-Makro, um die entsprechende Subsystem-ID zu setzen.
`NUMFILES` | `0 - 5` | `1` | In einer Nicht-Parallel-Sysplex-Umgebung unter z/OS kann der Roll Server ohne Roll File arbeiten und nur den speicherinternen Local Roll Buffer verwenden.
`NUMSLOTS` | `1 - 32767` | keiner | Die Anzahl der LRB-Slots, die für jedes verwendete Roll File zugewiesen ist. Die Gesamtzahl der LRB-Slots wird nach folgender Formel berechnet: NUMFILES * NUMSLOTS
`SLOTSIZE` | beliebiger numerischer Wert | Roll File Slot-Größe | Wert in Anzahl von Bytes. Dieser Parameter muss angegeben werden, wenn kein Roll File verwendet wird. Wenn Roll Files verwendet werden, wird dieser Parameter ignoriert und stattdessen die Slot-Größe der Roll Files verwendet.
`STRUCTURE` | beliebiger gültiger Strukturname | keiner | Wenn Sie weniger als 16 Zeichen angeben, werden Leerzeichen angefügt. Geben Sie diesen Parameter nur an, wenn Sie die Coupling Facility (mit z/OS Parallel Sysplex) verwenden. Andernfalls kann die Verwendung dieses Parameters unnötigen Overhead verursachen.
`LOWWATER` | `0 - 9` | `7` (einzelnes z/OS) `0` (Sysplex) | Gibt die niedrigste Zuordnungsmarke in Schritten von 10 Prozent der Anzahl der LRB-Slots an. Der `LOWWATER`-Wert kann nicht höher sein als der `HIGHWATER`-Wert. Dieser Wert wird immer ignoriert und auf `0` zurückgesetzt, wenn `STRUCTURE` einen Wert hat, unabhängig davon, was angegeben wurde.
`HIGHWATER` | `0 - 10` | `8` (einzelnes z/OS) `0` (Sysplex) | Analog zum Parameter low-water-mark. Der Wert `10` bedeutet, dass die Einstufungs-Task (Staging-Task) nie aktiviert wird. Es wird nur empfohlen, den Wert `10` anzugeben, wenn das LRB groß genug ist, um alle gleichzeitig aktiven Natural-Sitzungen zu bedienen. Der `HIGHWATER` -Wert kann nicht niedriger sein als der `LOWWATER`-Wert. Dieser Wert wird immer ignoriert und auf `0` zurückgesetzt, wenn `STRUCTURE` einen Wert hat, unabhängig davon, was angegeben wurde.
`NONACTIVITY` | `1 - 999999` | keiner | Die Anzahl der Stunden, die eine Sitzung inaktiv sein kann, bevor sie aus dem Roll File gelöscht wird. Wird diese Zeit überschritten, wird die Sitzung bei der nächsten geplanten Zeitüberschreitungsprüfung gelöscht. Wenn dieser Parameter weggelassen wird, wird keine Zeitüberschreitungsprüfung durchgeführt. Dieser Parameter kann mit dem Operator-Kommando `TIMEOUT`, geändert werden (siehe Betrieb des Roll Server).
`TIMEOUT=option` | `VERBOSE` oder `TERSE` | `VERBOSE` | Anzeige (verbose = mit Text) oder Unterdrückung (terse = kein Text) der Meldungen ASM0085 und ASM0086 während eines TIMEOUT-Vorgangs.
`TIMEOUTCHECK` | `0000 - 2359` | keiner | Die Tageszeit, zu der die Zeitüberschreitungsprüfung durchgeführt werden soll. Sitzungen werden gelöscht, wenn sie länger als die mit dem Parameter `NONACTIVITY` angegebene Nichtaktivitätszeit inaktiv waren. Wird dieser Parameter weggelassen, dann wird keine Zeitüberschreitungsprüfung eingeplant. Dieser Parameter kann mit dem Operator-Kommando `TIMEOUT`, geändert werden (siehe Betrieb des Roll Server).
`TIMEOUTREPEAT` | `0 - 1440` | keiner | Die Anzahl der Minuten zwischen zwei aufeinanderfolgenden Timeout-Prüfungen. Die erste Zeitüberschreitungsprüfung nach dem Roll Server-Start erfolgt nach der mit dem Parameter `TIMEOUTREPEAT` angegebenen Anzahl an Minuten. Wenn `TIMEOUTCHECK` ebenfalls angegeben ist, wird die erste Zeitüberschreitungsprüfung zu dem mit `TIMEOUTCHECK` angegebenen Zeitpunkt durchgeführt und danach jeweils nach der mit dem Parameter `TIMEOUTREPEAT` angegebenen Anzahl an Minuten. Die Angabe von `0` oder `1440` steht für keine Wiederholung der Zeitüberschreitungsprüfung. Die Zeitüberschreitungsprüfung wird nur zu der mit dem Parameter `TIMEOUTCHECK` angegebenen Zeit durchgeführt.
`MSGCASE` | `UPPER` oder `MIXED` | mixed case | Die Einstellung `MSGCASE=UPPER` bewirkt, dass alle Meldungstexte in Großbuchstaben angezeigt werden. Bei `MSGCASE=MIXED` werden alle Meldungstexte in Groß-/Kleinschreibung angezeigt.

Anmerkung
Der Local Roll Buffer befindet sich in einem Speicherobjekt "oberhalb der Grenze". Verwenden Sie den `MEMLIMIT`-Parameter im `EXEC`-Statement, um sicherzustellen, dass genügend Speicher "oberhalb der Grenze" zugewiesen werden kann.

### Beispiele für das Starten des Roll Servers als Batch Job

In den folgenden Beispielen steht `vr` für die jeweilige Version des Produkts.

    //   EXEC PGM=NATRSMvr,PARM='NAvr,,1000'
    //ROLLF1 DD DSN=SYSF.ROLLFILE

Die Subsystemkennung ist `NAvr`, es wird ein Roll File verwendet (Standard), und der lokale Roll Buffer hat 1000 Slots. Die verwendete Slot-Größe ist identisch mit der Slot-Größe des Roll File. Die Niedrigste Zuordnungsmarke ist 70 Prozent (Standard), die höchste Zuordnungsmarke ist 80 Prozent (Standard).

    //   EXEC PGM=NATRSMvr,PARM=',5,1000,150000,NATROLL1',MEMLIMIT=800M
    //ROLLF1 DD DSN=DASD1.ROLLFILE
    //ROLLF2 DD DSN=DASD2.ROLLFILE
    //ROLLF3 DD DSN=DASD3.ROLLFILE
    //ROLLF4 DD DSN=DASD4.ROLLFILE
    //ROLLF5 DD DSN=DASD5.ROLLFILE

Die Subsystemkennung ist `NATv` (Voreinstellung), es werden fünf Roll Files verwendet, und jeder der fünf lokalen Roll Buffers hat 1000 Slots. Die Größe der LRB-Slots beträgt 150000 Bytes. Das Verzeichnis der Roll Files befindet sich in der Struktur `NATROLL1` der Coupling Facility. Niedrigste und höchste Zuordnungsmarken werden ignoriert, da jeder Thread in das Roll File geschrieben wird (siehe Natural Roll Server-Funktionen). Da dieser Job für z/OS gedacht ist, gibt die Option `MEMLIMIT` 800 Megabyte für die lokalen Roll Buffers an.

Anmerkung
Der Roll Server wird in den folgenden Fällen nicht gestartet:

- Ein anderer Roll Server läuft mit der gleichen subsystem-id.

- Ein anderer Roll Server greift auf ein Roll File zu, das in seiner JCL angegeben ist.

- Ein Roll File wurde mit dem Kommando `SETXCF FORCE` neu formatiert, ohne die CF-Struktur zurückzusetzen.

## Roll Server-Meldungen, Condition Codes und Abend Codes

Der Roll Server schreibt Informations- und Fehlermeldungen unter Verwendung des `WTO`-Makros (`ROUTCDE=11`) in `JESMSGLG`. Den Meldungen werden eine Meldungskennung und der Jobname des Roll Servers vorangestellt, zum Beispiel:

    RSM0019 FBRSMvrs: Roll Server Version vrs is active

wobei vrs für die jeweilige Produktversion steht.

Die Meldungen werden im Abschnitt Roll Server Messages in der Messages and Codes-Dokumentation erläutert.

### Condition Codes des Roll Server Started Task

Die folgenden Condition Codes werden verwendet:

`0` | Normale Beendigung
`12` | Falsche Parametereingabe
`16` | Laufzeitfehler
`20` | Abbruch ist aufgetreten
>`100` | Initialisierungsfehler

### Benutzer-Abend Codes

Wenn ein XCF- oder XES Service Call einen unerwarteten Return Code ausgibt, wird ein Abend (Abbruch) mit Dump (Speicherauszug) erzwungen. Register 14 des Abend-Registers enthält den Reason Code. Eine Beschreibung der Ursache finden Sie unter Programming: Sysplex Services Reference (IBM-Dokumentation). Wenn der Fehler nicht umgebungsspezifisch war, senden Sie den Dump an den Support.

Die folgenden Benutzer-Abbruchcodes werden verwendet:

Abend Code | Ursache
--- | ---
`U0200` | `IXLCONN` fehlgeschlagen
`U0201` | `IXLFORCE` fehlgeschlagen
`U0202` | `IXLLIST` fehlgeschlagen
`U0203` | `IXLDISC` fehlgeschlagen
`U0204` | `IXCLEAVE` fehlgeschlagen
`U0301` | `IXLLIST` fehlgeschlagen
`U0302` | `IXCMSGO` fehlgeschlagen
`U0401` | `IXLLIST` fehlgeschlagen
`U0501` | `IXLLIST` fehlgeschlagen

## Return Codes und Reason Codes der Roll Server-Anforderung

Dies sind Codes, die Natural von den PC-Services-Routinen des Roll-Servers erhalten kann. Sie werden von den jeweiligen Teleprocessing-Schnittstellen (Natural CICS Interface oder Natural IMS TM Interface) gemeldet.

Eine Liste dieser Codes finden Sie unter Return Codes and Reason Codes of the Roll Server Request in der Messages and Codes-Dokumentation.

## Roll Server-Betriebsfunktionen

Die folgenden Kommandos können über das Operator-Kommando `MODIFY` an den Roll Server übergeben werden:

Kommando | Beschreibung
--- | ---
`HELP` | Zeigt eine Übersicht über die verfügbare Syntax.
`DIAGNOSE` | Debugging-Funktion, die nur auf Anraten des Supports hin verwendet werden sollte. Dieses Kommando hat keine Funktion. Es soll in Zukunft in Verbindung mit speziellen Zaps verwendet werden, um bei Bedarf die Diagnose von spezifischen Kundenproblemen zu unterstützen.
`HWM n` | High Water Mark: Setzt die höchste LRB-Zuordnungsmarke auf `n` mal 10 Prozent der Anzahl der LRB-Slots (`n` = `0` - `10`). Der HWM-Wert kann nicht niedriger sein als der aktuelle LWM-Wert. HWM wird immer ignoriert und auf `0` zurückgesetzt, wenn `STRUCTURE` einen Wert hat. Wenn `n` nicht angegeben wird, werden die aktuell niedrigste und die aktuell höchste Zuordnungsmarke angezeigt.
`LWM n` | Low Water Mark: Setzt die höchste LRB-Zuordnungsmarke auf `n` mal 10 Prozent der Anzahl der LRB-Slots (`n` = `0` - `9`). Der LWM-Wert kann nicht höher sein als der aktuelle HWM-Wert. LWM wird immer ignoriert und auf `0` zurückgesetzt, wenn `STRUCTURE` einen Wert hat. Wenn `n` nicht angegeben wird, werden die aktuell niedrigste und die aktuell höchste Zuordnungsmarke angezeigt.
`RESET` | Setzt die Intervallzähler zurück.
`SNAP` | Debugging-Funktion: Der Adressraum des Roll Server wird in `SYSUDUMP` gespeichert.
`STATS` | Schreiben von Roll Server-Statistiken nach JESMSGLG unter Verwendung des `WTO`-Makros (`ROUTCDE=11`). Die Statistiken enthalten Informationen über Roll-Out- und Roll-In-Aktivitäten sowie Roll-Datei-Ein-/Ausgaben.
`TERMinate` | `STOP` | Stoppt den Roll Server. Das Verzeichnis des Roll File und alle geänderten LRB-Slots werden in das Roll File geschrieben und der Adressraum wird geschlossen. Die Adressraumkennung ist bis zum nächsten IPL nicht mehr verfügbar. Statistiken werden unter Verwendung des `WTO`-Makros (`ROUTCDE=11`) in `JESMSGLG` geschrieben. Die Statistiken enthalten Informationen über Roll-Out- und Roll-In-Aktivitäten sowie Roll-Datei-Ein-/Ausgaben.
`TIMEOUT` | `NAT nnn` | Gibt den Parameter für die Nicht-Aktivitätszeit an oder ersetzt ihn.
`TOC hhmm` | Gibt die Tageszeit der Zeitüberschreitungsprüfung an oder ersetzt diese.
`OFF` | Deaktiviert die Zeitüberschreitungsprüfung.
`ON` | Aktiviert die Zeitüberschreitungsprüfung wieder.
`NOW` | Startet eine sofortige Zeitüberschreitungsprüfung. Die normale Zeitüberschreitungsprüfungsplanung (falls angegeben) bleibt in Kraft.
`TERSE` | Unterdrückt die Meldungen RSM0072 und RSM0074 während der `TIMEOUT NOW`-Verarbeitung. Die Meldung RSM0047 `Operator command: TIMEOUT NOW` wird ebenfalls unterdrückt.
`VERBOSE` | Zeigt die Meldungen RSM0072, RSM0074 und RSM0047 `Operator-Kommando: TIMEOUT NOW`. Dies ist die Standardeinstellung.
`REPEAT hhmm` | Gibt das Intervall an, in dem eine Zeitüberschreitungsprüfung erfolgt, oder ersetzt es.
`?` (oder keine Angabe) | Zeigt die aktuellen Timeout-Einstellungen an. Das Fragezeichen (`?`) ist optional und kann weggelassen werden.

## Struktur der Coupling Facility zurücksetzen

Wenn ein TP-Monitor oder eine Server-Region, die den Roll Server verwendet, abbricht, gibt der Roll Server möglicherweise einen Fehler zurück. Beispielsweise könnte das Roll Server-Verzeichnis als voll gemeldet werden, weil vor dem Abbruch der Region keine Sitzungsbereinigung durchgeführt wurde. Um einen solchen Fehler zu beheben, müssen Sie die entsprechende Coupling Facility-Struktur löschen:

1. Schalten Sie alle Roll Server ab, die die betroffene CF-Struktur verwenden.

2. Setzen Sie das Operator-Kommando `SETXCF FORCE,STR,STRNAME=structure-name` ab, wobei `structure-name` der Name der für die Roll Server verwendeten CF-Struktur ist.

3. Starten Sie alle Roll Server neu.

4. Formatieren Sie die Roll Files.

Wenn im normalen Betrieb die Roll Files oder der LRB aufgrund der Anzahl der gleichzeitig aktiven Benutzer voll werden, starten Sie den Roll Server neu und geben Sie größere Roll Files oder einen größeren LRB an.

Sie können die Auslastung der Roll Files auch mit dem Dienstprogramm SYSTP überwachen: Funktionscode `R`, Funktion Natural Subsystems and Roll Server Information.

## Roll Server-Leistung optimieren

Als allgemeine Regel für die Leistungsverbesserung des Roll Servers gilt: Geben Sie dem Roll Server eine höhere Dispatching-Priorität als den Adressräumen, in denen Natural läuft.

Um herauszufinden, wo die Performance-Schwachstellen liegen, können Sie die Systemleistung mit der Funktion Natural Subsystems and Roll Server Information des Dienstprogramms SYSTP. Zeilenkommando `R` (Statistical Information) analysieren.

Achten Sie bei der Analyse der Roll Server-Statistiken insbesondere auf die folgenden Werte:

- Die Anzahl der direkten Schreibvorgänge.

  Direct write bedeutet, dass der empfangene Natural-Thread direkt in das Roll File geschrieben wurde.

  Dafür gibt es zwei mögliche Ursachen:

  1. Kein LRB-Slot verfügbar. Erhöhen Sie den LRB.

  2. Der komprimierte Thread war größer als ein einzelner LRB-Slot. Erhöhen Sie die Größe des LRB-Slots.

- Die Anzahl der direkten Lesevorgänge.

  Direct read bedeutet, dass der angeforderte Thread nicht mehr im LRB war und direkt aus dem Roll File gelesen werden musste.

  Wenn das Verhältnis zwischen direkten Lesevorgängen und der Gesamtzahl der Lesevorgänge in einem einzelnen z/OS-System sehr hoch ist, dann ist die LRB zu klein. Erhöhen Sie sie.

  Wenn der Anteil der direkten Lesevorgänge an der Gesamtzahl der Lesevorgänge in einer z/OS-Parallel-Sysplex-Umgebung sehr hoch ist, kann dies auch bedeuten, dass es viele systemübergreifende Aktivitäten gibt, was wiederum bedeutet, dass eine Natural-Sitzung während ihrer Lebendauer ziemlich häufig die z/OS-Images wechselt.

- Die Anzahl der Staging-Wartezeiten (in einer einzelnen z/OS-Umgebung).

  Ein Staging Wait ist eine Situation, in der eine Schreibanforderung warten musste, bis die Einstufungs-Task (Staging Task) den LRB-Slot in das Roll File geschrieben hatte. Wenn das Verhältnis zwischen Staging-Wartezeiten und der Gesamtzahl der Schreibanforderungen sehr hoch ist, deutet dies darauf hin, dass die höchste und die niedrigste Zuordnungsmarke (Water Mark) unpassend gesetzt sind oder dass es einen Engpass auf dem Roll File-Gerät/Roll File-Kanal gibt.

  Aufgrund von Erfahrungen mit Stresstests wird Folgendes empfohlen:

  Wenn das Verhältnis der maximalen Anzahl aktiver Benutzer zur Anzahl der LRB-Slots sehr klein ist, sollten Sie die höchste Zuordnungsmarke erhöhen. Wenn nicht, sollte die höchste Zuordnungsmarke gesenkt werden.

  Die Differenz zwischen der höchsten und der niedrigsten Zuordnungsmarke sollte nicht größer als drei (30 Prozent) sein.

  Wenn die Anzahl der LRB-Slots deutlich größer ist als die maximale Anzahl der gleichzeitigen Benutzer, sollte die höchste Zuordnungsmarke idealerweise auf 10 gesetzt werden.

## Roll Server User Exits

Für den Roll Server gibt es zwei User Exits.

- `NATRSU14`

- `NATRSU24`

Dafür werden Beispiel-Quellcodemodule ausgeliefert.

### User Exit NATRSU14

Gibt die zu verwendende Roll File-Nummer an.

Konventionen für den Einstiegsaufruf:

- Register 1 adressiert die Parameterliste, die durch den folgenden `DSECT` beschrieben wird:

      PLIST      DSECT
      PLRSVER    DS CL4    Roll server version  (= 'vrs')
      PLNRF      DS H      Number of roll files
      PLUID      DS CL16   Userid
      PLTSNUM1   DS H      Total number of slots  Roll file 1
      PLUSNUM1   DS H      Number of slots in use Roll file 1
      PLTSNUM2   DS H      Total number of slots Roll file 2
      PLUSNUM2   DS H      Number of slots in use Roll file 2
      PLTSNUM3   DS H      Total number of slots Roll file 3
      PLUSNUM3   DS H      Number of slots in use Roll file 3
      PLTSNUM4   DS H      Total number of slots Roll file 4
      PLUSNUM4   DS H      Number of slots in use Roll file 4
      PLTSNUM5   DS H      Total number of slots Roll file 5
      PLUSNUM5   DS H      Number of slots in use Roll file 5
      PLISTL EQU *-PLIST

  wobei `vrs` für die jeweilige Version des Produkts steht.

- Register 13 zeigt auf einen 36-Vollwort-Speicherbereich.

- Register 14 enthält die Rücksprungadresse.

- Register 15 enthält die Einstiegsadresse von `NATRSU14`.

Rücksprungaufrufkonvention:

- Register 15 enthält die Nummer des Roll File im Binärformat.

Anmerkung
Wenn in diesem User Exit Zugriffsregister verändert werden, müssen diese Zugriffsregister gespeichert und bei der Rückkehr wiederhergestellt werden. Dieser User Exit wird im primären Adressierungsmodus mit `PSW Key 8` aufgerufen. Da er im speicherübergreifenden Modus läuft, darf kein SVC außer `SVC 13` verwendet werden.

### User Exit NATRSU24

Gibt den zu verwendenden XCF-Gruppennamen an.

Einstiegsaufrufkonventionen:

- Register 1 zeigt auf einen 8-Byte-Bereich, in dem der Gruppenname generiert werden muss.

- zeigt auf einen 18-Vollwort-Speicherbereich.

- Register 14 enthält die Rücksprungadresse.

- Register 15 enthält die Einstiegsadresse von `NATRSU24`.

Als Vorgabe für den Gruppennamen verwendet der Roll Server die ganz linken 8 Bytes des CF-Strukturnamens.

Dieser User Exit wird im Primärmodus, `PSW Key 8` und im Task-Modus aufgerufen.

### On this page

- Roll Server-Systemanforderungen
- Roll File formatieren
- Natural Roll Server starten
- Roll Server-Meldungen, Condition Codes und Abend Codes
- Return Codes und Reason Codes der Roll Server-Anforderung
- Roll Server-Betriebsfunktionen
- Struktur der Coupling Facility zurücksetzen
- Roll Server-Leistung optimieren
- Roll Server User Exits