Allgemeines
Anwendungsgebiet: | Meldungswesen; siehe "Meldungswesen" |
Makrotyp: | S-Typ, MF-Format 1: (31-Bit-Schnittstelle): Standardform/L-/D-/C-/E-Form; siehe "S-Typ-Makroaufrufe" |
Der Makro MSG7 wird nicht weiterentwickelt; neue Funktionalität wird ausschließlich im Makro MSG7X angeboten, der - im Unterschied zum Makro MSG7 - auch das neue Layout des Datenbereichs verwendet.
Makrobeschreibung
Der MSG7-Makro gibt eine Systemmeldung auf SYSOUT, SYSLST, einer Konsole oder in einen Bereich des Benutzerprogramms aus. Der angegebene Meldungsschlüssel muss 7-stellig sein. Die Operandenwerte anzahl2, A, B, C, N, R, T dienen dem Aufbau einer CSECT oder DSECT und können nur in Verbindung mit MF=C/D des Makroaufrufs angegeben werden.
Jede Systemmeldung trägt einen 7-stelligen Meldungsschlüssel. Die ersten 3 Zeichen des Schlüssels bezeichnen die Meldungsklasse; die restlichen 4 Zeichen dienen der laufenden Nummerierung innerhalb einer Klasse. Systemmeldungen können variable Teile „(&nn)“ enthalten, die durch „Inserts“ ersetzt werden können.
Makroaufrufformat und Operandenbeschreibung
MSG7 |
ID=msgid / (r1) / ((r1),(r2)) / (class,(r)) / R / C [,INSERT={(insertlänge, {adr / basis,[index],[dist]}) / ((insertlänge, {adr / basis,[index],[dist]}),...) / anzahl1 / anzahl2 / (anzahl,B) / (anzahl,T)}] [,LAN='sprache'] ,DEST=SYSOUT / SYSLST / CONSOLE / (ausgabeort,...) [,UCDEST='destcod' / (r) / destadr / N / R / A] [,REPLY={(replylänge,{adr / basis,[index],[dist]}) / REG / N / A / B / R}] [,BUFFER={(pufferlänge,{adr / basis,[index],[dist]}) / N / A / B}] [,MAP={NO / YES}] ,DMS=APPL / NOTAPPL / NA [,RC=X / (r) / R / N] ,MF=S / C / (C,pre) / (E,...) / (D,pre) / D / L |
ID=
dient der Angabe des Meldungsschlüssels der auszugebenden Systemmeldung.
msgid
7-stelliger Meldungsschlüssel
(r1)
Registerpaar r1 und r1 + 1, das den Meldungsschlüssel enthält:
r1 = Register, das rechtsbündig die Meldungsklasse enthält.
r1 + 1 = Register, das die Meldungsnummer enthält.
r1 muss geradzahlig sein.
((r1),(r2))
Registerpaar, das den Meldungsschlüssel enthält:
r1 = Register, das rechtsbündig die Meldungsklasse enthält.
r2 = Register, das die Meldungsnummer enthält.
(class,(r))
class = 3-stellige Meldungsklasse
r = Register, das die 4-stellige Meldungsnummer enthält.
INSERT=
gibt max. 15 Längen und Adressen von Einfügungen an. Für jede Eintragung wird im Datenbereich der Meldungsverarbeitung ein entsprechender Adressverweis aufgebaut.Werden mehr Einfügungen angegeben, als in der Meldung vorgesehen sind, so werden die weiteren Einfügungen ignoriert.
Eine Einfügung, die nur aus Leerzeichen besteht, wird auf 1 Leerzeichen gekürzt. Leerzeichen am Ende einer Einfügung werden unterdrückt.
Um das Abschneiden der Leerzeichen zu verhindern, muss am Ende der Einfügung das Zeichen X'01' angegeben werden. Findet die Meldungsverarbeitung das Zeichen X'01', werden die bis dahin eingetragenen Leerzeichen nicht unterdrückt.
Enthält ein Meldungstext mehr Einfügungen als im Makroaufruf angegeben, wird für jede übrige Einfügung der Standardwert übernommen. Ist kein Standardwert vorhanden, so wird die Ersatzeinfügung (&nn) eingesetzt.
(insertlänge,...)
| = Länge der Einfügung. |
| = symbolische Adresse (Name) des Bereichs |
| = Basisregister 1) |
| = Indexregister 1) |
| = Distanz 1) |
1)Angaben zur Berechnung der Adresse der Einfügung
Einfügungen können übersprungen werden, indem man die ausgelassenen Stellen mit einem Komma belegt, z.B. INSERT=(,(insertlänge2,adr2),,(insertlänge4,adr4)). Eine solche ausgelassene Einfügungen wird durch ihren Standardwert oder durch eine leere Zeichenkette ersetzt.
Bei insertlänge = 0 muss die Einfügung mit einem Satzlängenfeld (4 Byte) beginnen:
Byte 0-1:Länge der Einfügung
Byte 2-3:reserviert.
Hinweise
Bei indizierter Adressierung Kommas immer mitschreiben.
Eine Einfügungsliste beginnt mit zwei runden Klammern.
Summe der Einfügungslängen <= 4079 Byte.
anzahl1
Anzahl der INSERT-Verweise, für die Platz im Datenbereich der Meldungsverarbeitung reserviert werden soll.
anzahl1 darf nur zusammen mit MF=L angegeben werden.
anzahl2
Anzahl der Einfügungen, für die Namen in der CSECT/DSECT erzeugt werden sollen. anzahl2 darf nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
(anzahl,B)
Anzahl der Einfügungen, deren Adressen in der Form (basis,index,dist) angegeben werden. Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
(anzahl,T)
Anzahl der Einfügungen, für die symbolischen Adressen angegeben werden.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
LAN=
bezeichnet die Sprache, in der die Meldungstexte ausgegeben werden sollen.Dieser Operand wird nicht ausgewertet, wenn DEST=CONSOLE angegeben ist.
'sprache'
sprache = 1 Buchstabe zur Kennzeichnung der Sprache; D = Deutsch, E = Englisch.Weitere Möglichkeiten sind bei der Systemverwaltung zu erfragen. Der Standardwert wird durch den Systemparameter MSGLPRI festgelegt und wird auch dann eingesetzt, wenn eine ungültige Angabe erfolgte.
REPLY=
beschreibt einen Antwortbereich. Der Bereich muss auf Halbwortgrenze ausgerichtet sein und mit einem Satzlängenfeld (4 Byte; Byte 1-2: Länge, Byte 3-4: reserviert) beginnen.
Vor der Makroausführung muss in Byte 1-2 die Länge des Antwortbereichs (<= 4095 Byte) stehen. Bei Ausführung des Makros wird dann die aktuelle Länge der Antwort in Byte 1-2 eingetragen.
Bei Eingabe über den Operanden REPLY werden Kleinbuchstaben in Großbuchstaben umgesetzt. REPLY nur in Verbindung mit DEST=SYSOUT/CONSOLE angeben.
Wird als Antwort ein „?“ eingegeben, das in MIP als Schlüsselwort reserviert ist, zeigt MIP Bedeutung und Maßnahme der betreffenden Meldung an, bevor die Meldung erneut zur Beantwortung ausgegeben wird.
Hinweis
REPLY darf nur in Verbindung mit DEST=SYSOUT/CONSOLE angegeben werden.
(replylänge,...)
| = Länge des Antwortbereichs > 4 Byte |
| = symbolische Adresse (Name) des Bereichs |
| = Basisregister 1) |
| = Indexregister 1) |
| = Distanz 1) |
1)Angaben zur Berechnung der Adresse des Bereichs
Hinweis
Bei indizierter Adressierung Kommas immer mitschreiben.
REG
Die Antwort steht linksbündig im Register R1. Antwortlänge <= 4 Byte.
N
Ein Bereich für die Antwort wird in der CSECT/DSECT nicht generiert.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
A
Die Adresse für den Antwortbereich ist eine symbolische Adresse.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
B
Die Adresse für den Antwortbereich wird in der Form (basis,index,dist) angegeben.Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
R
Die Antwort soll in Register R1 übergeben werden.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
DEST=
der Operand beschreibt Ausgabeorte für die konvertierte Systemmeldung. Bei gleichzeitiger Angabe REPLY ist nur DEST=SYSOUT/CONSOLE erlaubt.
SYSOUT
Ausgabe erfolgt nach SYSOUT.
SYSLST
Ausgabe nach SYSLST.
CONSOLE
Ausgabe nach der Konsole.
(ausgabeort,...)
Kombination der genannten Ausgabeorte; Angabe in runden Klammern.
BUFFER=
beschreibt einen Bereich, in den die konvertierte Systemmeldung übertragen werden soll. BUFFER muss auf Halbwortgrenze ausgerichtet sein. In die ersten 2 Byte wird ein Satzlängenfeld eingetragen:
- Byte 0-1: Länge des Bereichs | Byte 2-3: reserviert | WROUT-Format Byte 4: Output-Steuerzeichen | Byte 5-n: Meldungstext | -
(pufferlänge,...)
| = Länge des Bereichs > 16 Byte |
| = symbolische Adresse (Name) des Bereichs |
| = Basisregister 1) |
| = Indexregister 1) |
| = Distanz 1) |
1)Angaben zur Berechnung der Adresse des Bereichs
N
Ein Bereich für die konvertierte Systemmeldung wird in der CSECT/DSECT nicht generiert.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
A
Die Adresse für den Bereich ist eine symbolische Adresse.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
B
Die Adresse für den Bereich wird in der Form (basis,index, dist) angegeben.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
MAP=
beschreibt, ob BUFFER eine andere Struktur (Mapping-Format) erhält.
NO
BUFFER wird im WROUT-Format eingerichtet.
YES
BUFFER wird im Mapping-Format eingerichtet (Aufbau siehe unten).
UCDEST=
UCON-Ausgabeort (UCON=Universelle CONsole); siehe „Systembetreuung“ [10].Das Ziel (Ausgabeort) einer Meldung kann wie folgt angegeben werden:
mnemotechnischer Gerätename für einen bestimmten Bedienungsplatz
Berechtigungsschlüssel (Routing Code) für Konsole und berechtigte Benutzerprogramme, denen ein bestimmtes Aufgabengebiet zugeordnet ist.
Berechtigungsname für einen berechtigten Benutzerprogramm.
Hinweise
UCDEST wird nur ausgeführt, wenn DEST=CONSOLE spezifiziert wurde.
UCDEST besitzt Vorrang vor dem Operanden RC
'destcod'
folgende Angaben sind für 'destcode' möglich:'(mn)'
wobei mn = 2 Zeichen langer mnemotechnischer Gerätename.'< x'
wobei x = Berechtigungsschlüssel; das Zeichen<
muss angegeben werden.'name'
wobei name = 4 Zeichen langer Name des Benutzerprogramms.
destadr
symbolischer Name eines Bereiches (Wortlänge) mit der Angabe für destcod. Angaben linksbündig; Ausrichtung auf Wortgrenze.(r)
r = Register mit den Angaben für destcod; linksbündiger Eintrag.N
Ein Feld für destcod soll in der CSECT/DSECT nicht generiert werden.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.R
Die Angabe für destcod steht in einem Register.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.A
Die Adresse des Feldes mit destcod ist eine symbolische Adresse (destadr).
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
DMS=
der Operand spezifiziert den Meldungs-Suchmechanismus.
APPL
Die Meldung wird mit dem DMS gesucht.
(Meldungsdateien + DLAM-Bereich).
NOTAPPL / NA
Die Meldung wird auf Systemebene nur im DLAM-Bereich (ohne DMS) gesucht.Rückmeldung, wenn die geforderte Meldung nicht gefunden wird:
msgid,DMS NOT IN MEMORY,Befehlszähler,Modul,inserts.
RC=
beschreibt den Berechtigungsschlüssel (Routing Code) für das Senden einer Meldung zur Console. Der in der Meldungseinheit stehende Berechtigungsschlüssel wird ignoriert, wenn der Operand RC spezifiziert wird.
x
Berechtigungsschlüssel (1. Zeichen); siehe auch Handbuch „Systembetreuung“ [10].
(r)
r = Register mit der Angabe für x. Eintrag rechtsbündig.
R
Der Berechtigungsschlüssel steht in einem Register.
Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
N
Ein Feld für den Berechtigungsschlüssel wird in der CSECT/ DSECT nicht generiert.Die Angabe wird zum Aufbau der CSECT/DSECT benötigt und kann nur in Verbindung mit der C-Form oder D-Form des Makroaufrufs angegeben werden.
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. für einen Präfix) siehe "Distributed-Lock-Manager (DLM)". Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.
Bei der C-Form und D-Form kann ein Präfix (pre = 1..4 Buchstaben), wie im Aufrufformat dargestellt, angegeben werden.
Voreinstellung:
pre = MSGC für die C-Form
pre = MSGD für die D-Form
Die Angabe von weniger als vier Buchstaben für das jeweilige Präfix führt zu der Zeichenfoge: MSGx (x entspricht 1. Buchstabe).
Der Datenbereich enthält zusätzlich eine Beschreibung des Ausgabebereichs, Antwortbereichs und Felder für maximal 15 Einfügungen.
Mapping-Format
Das Mapping-Format beschreibt die Struktur des Bereichs BUFFER bei MAP=YES. Dabei werden der unter BUFFER beschriebenen Struktur verschiedene Einträge (Mapping-List) vorangestellt.
Struktur des Mapping-Formats:
Byte 0-1: Länge der Mapping-List
Byte 2-3: C'MP'
Byte 4-n: Einträge
Byte n+1 bis p: weiterer Aufbau wie unter BUFFER beschrieben (WROUT-Format).
Die Einträge beinhalten Informationen über
die Einfügungen (Inserts)
den Meldungsschlüssel
den Berechtigungsschlüssel (Routingcode)
das Meldungsgewicht
Füllbytes zum Ausrichten
Einträge werden wie folgt abgelegt:
Rückinformation und Fehleranzeigen
Der Datenbereich enthält zusätzlich eine Beschreibung des Ausgabebereichs, Antwortbereichs und Felder für maximal 15 Einfügungen.
R15:
+---------------+ | | | | | | | | | | | |a|a| +---------------+
Über die Ausführung des Makros MSG7 wird im rechtsbündigen Byte des Registers R15 ein Returncode übergeben.
X' aa' | Erläuterung |
X'00' | MSG7-Makro ohne Fehler ausgeführt. |
X'04' | Abnormale Beendigung der Ein-/Ausgabe. |
X'08' | Ungültige Meldungsnummer, Bereichsadresse, mnemotechnischer Gerätename oder |
X'0C' | Benutzer fordert im Batch-Betrieb Antwort an. |
X'10' | Es steht kein Speicherplatz zur Verfügung. |
X'14' | BREAK während WROUT-Makro. |
X'18' | Abgeschnittene Meldung in den Ausgabebereich gebracht. |
X'20' | Meldungsausgabe abgebrochen. |
X'2C' | DEST=SYSLST wurde zusammen mit REPLY=... spezifiziert. |
X'30' | DEST=(...) wurde zusammen mit REPLY=... spezifiziert. |
X'41' | Das MIP-Subsystem ist nicht geladen. |