Es wird ein FASTPAM-Environment eingerichtet oder der Aufrufer an ein bestehendes FASTPAM-Environment angeschlossen.
In die Parameterliste wird eine Kennung eingetragen (FPAMENID), die bei den folgenden OPEN Aufrufen zu benutzen ist. Wenn dabei dieselbe Parameterliste benutzt wird, ist die Kennung bereits eingetragen und muss dann nicht eigens versorgt werden.
Von der Funktion ENAENV werden nur die nachfolgend beschriebenen Funktionsoperanden ausgewertet.
Format FCT=*ENAENV
Operation | Operanden |
|
|
| |
| |
|
Operandenbeschreibung
ACCLSTS
Gibt die auf 4 KByte ausgerichtete Anfangsadresse des Bereichs an, der sämtliche, hintereinander liegenden FPAMACC-Parameterlisten enthält. Ist dieser Bereich resident angelegt, darf er sich nicht mit dem Parameterlistenbereich anderer Environments, mit einem IO-Area-Pool oder einem DIV-Fenster überlappen.
Liegt der Bereich in einem Memory-Pool, muss dieser mit dem Makro ENAMP, Operand FIXED=YES angelegt worden sein.
Bei der Form MF=L ist nur die symbolische Adresse erlaubt, wobei symbolische Namen innerhalb einer DSECT ausgeschlossen sind, da ihre Adresse erst zur Laufzeit bekannt ist.
= adr
Ist die symbolische Adresse (Name) des Bereichs.
= (r)
Ist ein Register, das die Anfangsadresse des Bereichs enthält.
ACCNUMB
ACCNUMB gibt die Anzahl der Parameterlisten an, die in dem mit ACCLSTS angegebenen Bereich liegen. Dieser Bereich muss also mindestens mit der Größe ACCNUMB * (Länge der FPAMACC-Parameterliste) angefordert werden.
Läuft die Anwendung nicht mit FASTPAM-Berechtigung, ist die Anzahl der Parameterlisten auf 500 beschränkt; ansonsten ist der Höchstwert 5000.
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= anzahl
Gibt die Anzahl der Parameterlisten an, die in dem mit ACCLSTS angegebenen
Bereich liegen sollen (1 <= anzahl <= 5000).
= adr
Ist die symbolische Adresse eines 4 Byte langen Feldes, das die Anzahl der Parameterlisten als numerischen Wert enthält (binär).
= (r)
Ist ein Register, das die Anzahl der Parameterlisten als numerischen Wert enthält.
EIID
Gibt die Kurzkennung für die Ereigniskennung an, über die bei den Dateizugriffen das Auftragsende angezeigt wird. Diese Kurzkennung erhält der Anwender über den Operanden EIIDRET des Makros ENAEI (siehe Handbuch „Makroaufrufe an den Ablaufteil“ [2]). Liegen die FPAMACC-Parameterlisten in einem Memory Pool, ist darauf zu achten, dass sein Geltungsbereich nicht größer ist als der Geltungsbereich der Ereigniskennung (Returncode FPAMEISS).
Bei EVENTNG=*NO wird der Operand EIID nicht ausgewertet.
Bei der Form MF=L ist nur die direkte Angabe möglich.
= zahl
Ist der dezimale numerische Wert der Kurzbezeichnung für die Ereigniskennung.
= adr
Ist die symbolische Adresse (Name) des 4 Byte langen Feldes, das die Kurzkennung für die Ereigniskennung enthält.
= (r)
Ist ein Register, das die Kurzkennung für die Ereigniskennung enthält.
ENVNAME
Bezeichnet den Namen des Environments.
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= 'name'
Ist der Name des Environments.
Namenslänge: 1 <= 'name' <= 54 Zeichen.
Namensbildung:
1. Zeichen: Buchstabe oder Sonderzeichen #, @ (für TPR-Tasks auch $).
2. – 54. Zeichen: beliebige Kombination aus der Zeichenmenge
(A,...,Z,0,...,9,$,#,@).
Das erste Blank (X'40') beendet den Namen.
Der Name muss in Hochkommata eingeschlossen werden.
= adr
Ist die symbolische Adresse eines 54 Byte langen Feldes, das den Namen des Environments enthält.
= (r)
Ist ein Register, das die Adresse des Feldes mit dem Namen des Environments enthält.
EVENTNG
Legt fest, ob der Anwender bei den asynchron ausgeführten Dateizugriffen das Auftragsende über Eventing mitgeteilt bekommt (vgl. dazu Abschnitt „FASTPAM-Funktionen, Eventing Verarbeitung“, Handbuch „Einführung in das DVS“ [1]).
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= *YES
Der Anwender will mit Eventing arbeiten. In diesem Fall muss die Kurzbezeichnung der Ereigniskennung (Eventitem; Operand EIID) angegeben werden. Bei den nachfolgenden OPEN-Aufrufen kann sowohl mit EVENTNG=*YES, als auch mit EVENTNG=*NO gearbeitet werden.
= *NO
In diesem Fall kann mit diesem Environment keine Datei mehr mit dem Parameter EVENTNG=*YES eröffnet werden.
Bei EVENTNG=*NO wird der Operand EIID nicht ausgewertet.
= *NOT_SPECIFIED
Das Environment besteht schon und der Teilnehmer will sich unabhängig von der entsprechenden Eigenschaft daran anschließen.
= adr
Ist die symb. Adresse eines 1 Byte langen Feldes, das den Wert für EVENTNG enthält.
= (r)
Ist ein Register, das den Wert für EVENTNG enthält.
FCT
Bestimmt die auszuführende FASTPAM-Funktion.
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= *ENAENV
Ist die direkte Angabe der Funktion ENABLE ENVIRONMENT.
Es wird ein FASTPAM-Environment eingerichtet, oder der Aufrufer wird an ein bereits bestehendes FASTPAM-Environment angeschlossen.
In die Parameterliste wird eine Kennung eingetragen (FPAMENID), die bei den folgenden OPEN-Aufrufen zu benutzen ist. Wenn dabei dieselbe Parameterliste benutzt wird, ist die Kennung bereits eingetragen und braucht daher nicht beachtet zu werden.
= adr
Ist die symbolische Adresse eines 1 Byte langen Feldes, das den Wert für die Funktion ENABLE ENVIRONMENT enthält.
= (r)
Ist ein Register, das den Wert für die für die Funktion ENABLE ENVIRONMENT enthält.
MACID
Legt jeweils das zweite bis einschließlich vierte Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung generiert werden.
= PAM
Voreinstellung: MACID=PAM
= macid
„macid“ ist eine drei Zeichen lange Zeichenfolge, die jeweils das zweite bis vierte Zeichen der generierten Feldnamen und Equates festlegt.
MAXIOLN
Bestimmt die mit diesem Environment mögliche maximale Ein-/Ausgabelänge. Sie darf bei den Dateizugriffen nicht mehr über-, sondern nur noch unterschritten werden.
Beim Arbeiten mit residenten FASTPAM-Environments wird für die vorformatierten Ein-/Ausgabepfade zusätzlich residenter Systemspeicher (Klasse-3-Speicher) belegt, und zwar pro Ein-/Ausgabepfad
1 KByte bei MAXIOLN = *MINI
2 KByte bei MAXIOLN = *MAXI
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= *MINI
Für jede FPAMACC-Parameterliste wird ein Ein-/Ausgabepfad zur Übertragung von 4 KByte angelegt.
= *MAXI
Für jede FPAMACC-Parameterliste wird ein Ein-/Ausgabepfad zur Übertragung von 32 KByte angelegt.
= *NOT_SPECIFIED
Das Environment besteht schon, und der Teilnehmer will sich unabhängig von der entsprechenden Eigenschaft daran anschließen.
= adr
Ist die symbolische Adresse eines 1 Byte langen Feldes, das die maximale Ein-/Ausgabelänge für dieses Environment enthält.
= (r)
Ist ein Register, das den Wert für MAXIOLN enthält.
MF
Die Formen des MF-Operanden sind detailliert im Anhang, "Typen von Makroaufrufen" beschrieben.
PARAM
Bezeichnet die Adresse der Operandenliste. Der Operand wird nur in Verbindung mit MF=E ausgewertet (siehe auch "Typen von Makroaufrufen").
PREFIX
legt das jeweils erste Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung generiert werden.
= F
Voreinstellung: PREFIX=F
= pre
„pre“ ist ein ein Zeichen langes Präfix, mit dem die generierten Feldnamen und Equates beginnen sollen.
RES
Gibt an, ob das Environment resident oder nicht-resident angelegt werden soll.
= *YES
Das Environment soll resident angelegt werden. In diesem Fall wird überprüft, ob die Benutzerkennung über die FASTPAM-Berechtigung verfügt und ob die beim Programmaufruf angeforderte Anzahl residenter Seiten (Benutzerkatalog: „RESIDENT-PAGES“ bzw. „CLASSII“) für den FPAMACC-Parameterlistenbereich ausreicht. Die Größe des FPAMACC-Parameterlistenbereichs wird durch den Operanden ACCNUMB bestimmt. Bei negativem Ergebnis erhält der Anwender die Fehlermeldung „FPAMNORE“. Das FASTPAM-Environment wird in diesem Fall nicht-resident angelegt.
= *NO
Das Environment wird nicht-resident angelegt.
= *NOT_SPECIFIED
Das Environment besteht schon, und der Teilnehmer will sich daran anschließen, unabhängig davon, ob es resident oder nicht-resident angelegt ist.
= adr
Ist die symbolische Adresse eines 1 Byte langen Feldes, das den Wert für RES enthält.
= (r)
Ist ein Register, das den Wert für RES enthält.
Mögliche Returncodes bei FCT=*ENAENV
Standardheader: ccbbaaaa
Über die Ausführung des Makros FPAMSRV wird im Standardheader folgender Returncode übergeben (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'cc' | X'bb' | X'aaaa' | Erläuterung |
X'00' | X'0000' | Funktion erfolgreich ausgeführt. | |
X'01' | X'0001' | Funktion nicht ausgeführt. | |
X'01' | X'0005' | Funktion nicht ausgeführt. | |
X'01' | X'0006' | Funktion nicht ausgeführt. | |
X'01' | X'000A' | Funktion nicht ausgeführt. | |
X'01' | X'000B' | Funktion nicht ausgeführt. | |
X'01' | X'000D' | Funktion nicht ausgeführt. | |
X'01' | X'0012' | Funktion nicht ausgeführt.
| |
X'20' | X'0028' | Funktion nicht ausgeführt. | |
X'40' | X'0032' | Das Environment bzw. der IO-Area-Pool konnte nicht resident angelegt werden. | |
X'01' | X'40' | X'0032' | Die USERID der Task, die das Environment bzw. den IO-Area-Pool eingerichtet hat, verfügt nicht über die FASTPAM-Berechtigung. |
X'02' | X'40' | X'0032' | Zu kleiner Realspeicher. |
X'03' | X'40' | X'0032' | Das beim Programmstart angegebene Kontingent an residentem Hauptspeicher ist überschritten. |
X'04' | X'40' | X'0032' | Konnektierung an ein nicht-residentes Environment bzw. an einen nicht-residenten IO-Area-Pool. |
X'05' | X'40' | X'0032' | In vorliegender FASTPAM-Version werden Datenräume (Data-Spaces) nur nicht-resident unterstützt. |
X'40' | X'0035' | Während der Ausführung der Funktionen *ENAENV/*ENAIPO läuft eine Ein-/Ausgabe auf die zu fixierenden Speicherseiten. Dieser Returncode kommt nur beim Einrichten des Environments bzw. IO-Area-Pools. Während der Konnektierung dürfen Ein-/Ausgaben laufen. | |
X'40' | X'0037' | Systembetriebsmittelengpass. | |
X'40' | X'0038' | An das genannte FASTPAM-Betriebsmittel können sich nur TPR-Tasks konnektieren. | |
X'40' | X'0039' | An das genannte FASTPAM-Betriebsmittel können sich nur Tasks einer Kennung mit FASTPAM-Privileg konnektieren. | |
X'40' | X'003B' | Der Teilnehmer will sich an ein bestehendes Environment mit einem anderen Operandenwert für ACCLSTS konnektieren. | |
X'40' | X'003C' | Der Teilnehmer will sich an ein bestehendes Environment mit einem anderen Operandenwert für ACCNUMB konnektieren. | |
X'40' | X'003F' | Der Teilnehmer will sich an ein bestehendes Environment mit einem anderen Operandenwert für MAXIOLN konnektieren. | |
X'40' | X'0040' | Der Teilnehmer will sich an ein bestehendes Environment mit einem anderen Operandenwert für EVENTNG konnektieren. | |
X'40' | X'0041' | Der Teilnehmer will sich an ein bestehendes Environment mit einer anderen Ereigniskennung konnektieren. | |
X'40' | X'0046' | Der Anwender will sich an ein bestehendes Environment anschließen, ist aber nicht an die zugehörige Ereigniskurzkennung angeschlossen. | |
X'40' | X'0047' | Der Gültigkeitsbereich der Ereigniskennung ist kleiner als der Gültigkeitsbereich des FPAMACC-Parameterlistenspeichers. | |
X'40' | X'0048' | Die Task ist an das Environment bereits konnektiert. | |
X'40' | X'004A' | Der angegebene Anwenderspeicher überlappt sich mit einem DIV-Fenster. Dieser Returncode kommt nur im residenten Fall. | |
X'40' | X'004B' | Der angegebene Anwenderspeicher überlappt sich mit einem bereits verwendeten FASTPAM-Anwenderspeicher. | |
X'40' | X'004C' | Der Speicher für die FPAMACC-Parameterlisten ist nicht vollständig angefordert worden. | |
X'40' | X'005B' | Beim 'ENAMP'-Aufruf zum Anlegen des Memory-Pools für die Access-Listen bzw. den IO-Area-Pool wurde nicht 'FIXED=YES' angegeben. |