PDA

View Full Version : Mehrere MONMSG hintereinander ? Wie ?



Seiten : [1] 2 3

c.b.
20-06-08, 06:56
hallo,
ist ja schon fast peinlich nach fast 20jähriger as/400 erfahrung, aber wie werden mehrere MONMSG hintereinander abgefragt; z.B. eine explizite MONMSG abfrageb und danach generell CPF0000 falls noch andere fehler auftreten ?

einfach dann hinter's ENDDO ?

CPYF ..........
MONMSG MSGID(CPFxxxx) EXEC(DO)
.....
ENDDO
MONMSG MSGID(CPF0000)

danke schonmal für die antworten.

gruß

christian

Fuerchau
20-06-08, 07:32
Ja, genau so !!!!!!!!!

Fuerchau
20-06-08, 07:40
Nachtrag:
Es gibt da noch eine Hierarchie:

1. CPFXXYY
2. CPFXX00
3. CPF0000

Ggf. gibt es noch andere Klassen, die vorher ausgelöst werden, z.B.:

MONMSG RPG0000
MONMSG CPF0000

c.b.
08-07-08, 07:34
tja, war wohl nix !!!!

unsere datensicherung ist mal wieder hängengeblieben und dadurch an der i5 rote warnlampe an und code A9003C70; also hart herunterfahren und neu starten.
ursache war aber wieder der befehl savlib .....
direkt dahinter frage ich
SAVLIB .......
MONMSG MSGID(CPF3785) EXEC(DO)
.
dazwischen nochmals ein
MONMSG MSGID(CPF0000 EXEC(DO)
für einen anderen Berfehl
.
.
ENDDO (2. Monmsg)
ENDDO (1. Monmsg)

und danach die allg. Monmsg für Savlib
MONMSG MSGID(CPF0000 EXEC(DO)
SNDMSG .....
ENDDO

d.h. die allg. Monsmg für Savlib wird gar nicht erkannt.
wo habe ich einen denkfehler ?

bin mal wieder um jede hilfreiche antwort dankbar.


gruß

christian

und dahinter dannab

und danach

B.Hauser
08-07-08, 08:12
Versuch's mal so:


SAVLIB .......
MONMSG MSGID(CPF3785) EXEC(GOTO HdlCPF3785)
MONMSG MSGID(CPF0000) EXEC(DO)
SNDMSG .....
ENDDO

Goto Weiter

HdlCPF3785:
Ausführung DO mit MONMSG CPF0000 für anderen Befehl
Goto Weiter

Weiter:
Weitere Verarbeitung


Birgitta

Pikachu
08-07-08, 08:30
Vielleicht bleibt der SAVLIB ja gleich auf einer CPAnnnn Anfragenachricht (z.B. CPA4060, CPA4086 oder CPA4088) stehen? Oder das Zeitlimit für die Stapelverarbeitung (Parameter BCHTIMLMT des Befehls ENDSBS) ist zu lang eingestellt?

Was steht im Jobprotokoll dieses Jobs? Was steht in der Systemchronik (DSPLOG) zu diesem Job?

Der Systemreferenzcode A900 3C70 wird laut Hilfe zum Befehl ENDSBS angezeigt, "solange" sich das System im Status des eingeschränkten Betriebs befindet.

Machst du auch ein SAVSYS? Falls nicht, müßtest du das System vielleicht überhaupt nicht in den Status des eingeschränkten Betriebs setzen.

Fuerchau
08-07-08, 08:32
Die MONMSG-Reihenfolge ist wohl korrekt.
Allerdings kann es sein, dass die MONMSG nicht erreicht werden, wenn es vorher INQ-Nachrichten gibt, die auf Antwort warten.

Hierfür muss der Job per CHGJOB auf
a) automatische Antwort mit Default
oder
b) auf Antwort über SYSRPYLE
gestellt werden.

MONMSG-Folge funktioniert auch so:

Befehl
MONMSG CPFXXYY EXEC(DO)
Weiterer Befehl
MONMSG CPF0000 EXEC(DO)
ENDDO
ENDDO
MONMSG CPFXX00 EXEC(DO)
ENDDO
MONMSG CPF0000 EXEC(DO)
ENDDO

Eine Schachtelung ist also durchaus möglich, da die MONMSG sich unmittelbar auf den davor liegenden Befehl beziehen.

kitvb1
08-07-08, 08:41
Tut mir leid, aber meine Deutch kenntnis reicht nicht für ein lange antwort aus. Machs einfach mit englisch nai.

My understanding is that one can use monmsg once per command only, but one can monmsg for several messages at a time in 2 different places.
Example 1.

SAVLIB ...
monmsg (cpf3785 cpf3786 cpf3787 whatever..) exec(do)
crtsavf/rewind tape/whatever..
goto redosavlib
Example 2.
dcl...
dcl...
monmsg (cpf3785) exec(.....)
monmsg (cpf3786) exec(.....)
monmsg (cpf0000) exec(.....)

SAVLIB ...
monmsg (cpf3787) exec(do)
whatever
...
enddo

Fuerchau
08-07-08, 09:04
Es existiert eine Hirarchie bei MONMSG:

1. CPFXXYY => Spezielle
2. CPFXX00 => Gruppe
3. CPF0000 => Generell

MONMSG erlaubt auch eine Liste, die nacheinander abgearbeitet wird.

Zusätzlich kann man auch noch auf Dateninhalt vergleichen (Siehe Feldbeschreibung der Nachrichten), so dass man MONMSG weiter spezialisieren kann:

MONMSG CPFXXYY MSGDTA(...) EXEC(...)

c.b.
08-07-08, 09:47
danke schonmal für die antworten; habe das CL kopiert und etwas vereinfacht aber mit genau diesem ablauf und siehe da, es läuft !!! ich habe keine ahnung was da nicht funktioniert hat, da die i5 aber auf A9003C70 gestanden hat, also mehr oder weniger tot war, und wir uns das eigentlich nicht leisten können, werde ich da nicht länger rumbastelen sondern nur die CPF0000 abfragen, dann haben wir eben keine sicherung.

das hier ist ein auszug aus dem joblog, wobei ich nicht mal weiß welches objekt nicht gesichert wurde, habe 3 mal drüber geschaut und nihts gefunden:

359 Bibliotheken gesichert, 1 teilweise gesichert, 0 Objekte nicht gesichert.
(C D I R) CPF3777 von Prozedur SAVBIBCLB empfangen.
Antwort auf Nachricht in Nachrichtenwarteschlange QSYSOPR erwartet.
Eintrag nicht im Journal QSQJRN aufgezeichnet. Ursachencode 11.
(C D I R) CPF3777 von Prozedur SAVBIBCLB empfangen.
C