-
MCH3402 bei sndmsg
hallo zusammen,
hatte grade einen MCH3402 in einem programm.
ein kollege meinte, der würd da alle paar wochen mal auftreten.
10000x funktioniert es
einmal nicht
und niemand weiss wiso.
aus dem joblog:
Code:
*NONE Befehl 02.09.05 14:23:15 QCADRV QSYS 0390 P013W1CL OFFLIB *STMT
Zielmodul . . . . . . . . . : P013W1CL
Zielprozedur . . . . . . . : P013W1CL
Anweisung . . . . . . . . . : 7700
Nachricht . . . : 7700 - SNDMSG MSG(FERTIG) TOMSGQ(M931175)
MCH3402 Abbruch 40 02.09.05 14:23:15 QMHSNSTQ QSYS 0590 QMHSNSTQ QSYS 0590
Nachricht . . . : Es wurde versucht, auf ein nicht mehr vorhandenes Objekt
oder Teile des Objekts Bezug zu nehmen.
Ursache . . . . : Die häufigste Ursache ist, daß eine gespeicherte Adresse
für ein Objekt nicht mehr korrekt ist, da das Objekt ganz oder teilweise
gelöscht wurde.
im programm steht da folgendes:
Code:
/* Verarbeitung SNDMSG-Datei */
loop:
call pgm(P013W1) parm(&antwort &ende)
rclrsc
rclactgrp actgrp(*eligible)
if cond(&ende *eq '1') then(goto +
cmdlbl(rcvmsg))
/* Antwort-Nachricht schicken */
sndmsg msg(FERTIG) tomsgq(&antwort)
ich hab das gefühl, das hängt mit den reclaims zusammen.
aber inwiefern genau?
und vor allem: wiso passiert das nicht immer sondern nur sporadisch?
hat wer ne idee?
Gruß
Martin
-
"rclactgrp actgrp(*eligible)" ist der Verursacher, da dieser ALLE inaktiven ACTGRP's entfernt unabhängig von der Aufrufebene.
Vor allem ist hier die Frage, ob dies denn nötig ist. Bei korrekter ILE-Programmierung (*INLR = *ON) wird eine ACTGRP auch rechtzeitig gelöscht.
-
Programm P013W1 hat actgrp *caller und wird mit return beendet.
so wie ich das sehe löscht der sich da seine eigene actgrp unterm hintern weg dann.
nötig ist das sicher nicht.
meine frage ist jetzt: was bemängelt der sndmsg da jetzt?
bei den reclaims wird die messagequeue an sich doch nicht gelöscht.
und laut joblog ist die variable &antwort mit dem msgq namen offensichtlich gefüllt.
wodurch wird an dieser stelle da jetzt der mch herbeigeführt?
Gruß
Martin
-
QMHSNSTQ läuft ja auch wiederum in einer ACTGRP, ruft selber ggf. weitere Objekte auf die wiederum eigene ACTGRP's haben können.
Schau mal vor dem RCLACTGRP per DSPJOB auf die aktiven ACTGRP's, die du dadurch ggf. killst.
In früheren OS-Versionen wurde "*eligible" noch als Auswahl bei F4 angeboten, seit V5R2 nicht mehr. Auch in der Hilfe (F1) tacht er nicht mehr auf.
Ich denke, das ist nur noch aus Kompatibilität vorhanden und fliegt irgendwan auch raus.
-
also bei mir gibts das noch
unter v5r2 und v5r3
aber ich denk ich werds einfach mal rausnehmen aussm programm.
Gruß
Martin
Similar Threads
-
By Robi in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 14-12-06, 11:12
-
By MatthiasK in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 10-01-06, 12:02
-
By Herbie in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 23-07-04, 12:44
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