-
Nachricht in QSYSOPR löschen, nicht ausgeben
Hallo *all,
Problem:
ich möchte das Fehler CPC1125 nicht in der QSYSOPR-Warteschlange erscheint.
Meine Lösungsansätze:
- Nachricht ausgeben und anschliessend löschen (keine ahnung wie)
- Bewertungscode der Fehler von 50 auf 10 setzen (gemacht, erscheint trotzdem)
Habt ihr ev. eine weitere möglichkeit?
signoff.
-
Die Warteschlange kann mittels RCVMSG per CLP gelesen werden.
Auf CPC1125 filtern und per RMVMSG dann löschen (Achtung: nicht schon beim RCVMSG).
Dem Programm verbieten, diese Nachricht zu senden, geht ja nicht.
Der Bewertungscode ist nur eine Info.
-
Meinst du so
ENDJOB JOB(&JOB) OPTION(*IMMED) +
SPLFILE(*NO) LOGLMT(0)
MONMSG MSGID(CPF0000)
RCVMSG MSGQ(QSYSOPR) MSGTYPE(*FIRST) WAIT(1) +
RMV(*NO) KEYVAR(&MSGKEY) MSGID(&MSGID)
MONMSG MSGID(CPF0000)
RMVMSG MSGQ(QSYSOPR) MSGKEY(&MSGKEY)
MONMSG MSGID(CPF0000)
-
Ja, das hast du korrekt erkannt.
Nur musst du mit MSGTYPE(*NEXT) zum Key weiterlesen.
-
Habe geändert,
aber RCVMSG leifert kein MSGkey zurück.
ENDJOB JOB(&JOB) OPTION(*IMMED) +
SPLFILE(*NO) LOGLMT(0)
MONMSG MSGID(CPF0000)
RCVMSG MSGQ(QSYS/QSYSOPR) MSGTYPE(*NEXT) +
MSGKEY(&MSGKEY) RMV(*NO)
MONMSG MSGID(CPF0000)
RMVMSG MSGQ(QSYSOPR) MSGKEY(&MSGKEY)
MONMSG MSGID(CPF0000)
-
Was ist ein MSGKEY ?
CPC1125
-
Nun, &MSGKEY liefert eine 4-Byte-ID.
Beim 1. RCVMSG musst du *FIRST wählen, dann wird ein MSGKEY geliefert.
Bei allen weiteren mit *NEXT weiterlesen.
Wenn du allerdings den RMVMSG gemacht hast, kannst du mit diesem MSGKEY keinen *NEXT mehr machen. Dies müsstest du vorher tun.
-
Kann ich nicht einfach,
die Meldung von dem letzten Befehl empfangen?
(ich habe im Programm ENDJOB... , dieses ENDjob gibt die Meldung CPC1125, und die möchte ich abfangen und löschen.)
-
Leider nein.
ENDJOB beendet deinen Job, dies ist dann die letzte Anweisung deines Programmes.
Wenn du einen MONMSG danach machst, wird dieser nur ausgeführt, wenn der ENDJOB aus irgendwelchen Gründen scheitert (habe ich aber noch nie erlebt).
Das Löschen aus der QSYSOPR muss also ein anderer Job machen.
-
habe mich falsch ausgedruckt.
ich habe ein Programm , dieses programm macht ENDJOB auf ein anderen Job.
D.h. Das Programm läuft ganz normal weiter.
-
habe erst mal so gelösst:
ENDJOB JOB(&JOB) OPTION(*IMMED) SPLFILE(*NO) LOGLMT(0)
MONMSG MSGID(CPF0000)
RCVMSG MSGQ(QSYS/QSYSOPR) MSGTYPE(*LAST) RMV(*NO) +
KEYVAR(&MSGKEY) +
MSGID(&MSGID)
MONMSG MSGID(CPF0000)
IF COND(&MSGID *NE 'CPC1125') THEN(GOTO +
CMDLBL(ENDE1))
RMVMSG MSGQ(QSYSOPR) MSGKEY(&MSGKEY)
MONMSG MSGID(CPF0000)
ENDE1:
Similar Threads
-
By oulbrich in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 18-11-13, 08:52
-
By heynem in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 27-03-03, 12:14
-
By Burgy Zapp in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 06-03-02, 14:38
-
By Dana in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 14-12-01, 09:35
-
By Gattringer in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 30-11-01, 09:55
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks