PDA

View Full Version : MONMSG Problem



GJV23
03-05-11, 08:52
Hallo

ich habe folgendes Problem oder Frage:
Im nachstehenden CL wird der EXEC-Befehl nicht ausgeführt:

CHKOBJ OBJ(*CURLIB/&OVL) OBJTYPE(*OVL)
MONMSG MSGID(CPF9800) EXEC(CHGVAR VAR(%SST(&OVL 3 +
5)) VALUE('B0000'))

Ich hab am Beginn des Programmes (nach den DCL-Anweisungen) keinen generellen MONMSG Befehl.
Wenn ich das Programm mit STRDBG kontrolliere springt es nach dem MONMSG-Befehl (MSGID CPF9801 tritt auf) auf die letzte Zeile des CL-Programmes (ENDPGM) und danach auf die nächste Zeile nach dem MONMSG- Befehl.
Woran kann das liegen oder was mache ich falsch?

Josef

Fuerchau
03-05-11, 09:04
Da machst du gar nichts falsch.
Im CLP liegen die Fehlerbehandlungen zentral am Ende. Daher springt der Debugger halt mal auf ENDPGM.

Da CLP nur jeden Befehl einzeln debuggen kann, ist der CHGVAR im MONMSG nicht einzeln überwachbar.

Dein Programm bricht ja nicht ab, deine Variable wird geändert.

Möchtest du gezielt stoppen, dann pack den CHGVAR in ein DO/ENDDO:

MONMSG ... EXEC(DO)
CHGVAR ...
ENDDO

GJV23
03-05-11, 15:42
Danke für die prompte Antwort.
Das ganze war ein Denkfehler von mir.
Ich habe mich in den Stellen beim %SUBSTR geirrt und war der Meinung der Befehl CHGVAR wird nicht ausgeführt.

Auch nach Jahren auf der AS400 ist man vor einem solchen Lapsus nicht gefeit.

Josef

Andreas Herzfeldt
04-05-11, 09:32
Hallo GJV23, frage doch bitte mal auf MONMSG CPF9801 ab - ich denke die CPF9800 gibt es gar nicht, bzw. die wurd ein V5R3 entfernt.

MFG
Andreas

BenderD
04-05-11, 10:10
MONMSG CPF9800 fängt alles ab, was mit CPF98 anfängt

D*B