PDA

View Full Version : eine Fall für die Glaskugel?!?



malzusrex
11-11-16, 10:33
Hallo Gemeinde,
ich hätte da mal folgendes Problem/Phänomen.
Wir haben auf einem Kundensystem einen Job, der läuft wöchentlich. Normalerweise ist der in 1-2 Minuten durch. In unregelmäßigen Abständen (so 1-2 mal im Vierteljahr) läuft und läuft und läuft.
Was auch eigenartig ist, wenn man bei WRKJOB sich mit 11 den Aufrufstapel anzeigen lässt, dauert es rund 20 Sekunden bis die Anzeige erscheint.
Im Status vom Job steht aber auch kein LCKW oder so.
Bei „Offene Dateien“ tauchen auf 2 Files auf die mir nichts sagen, und in dem laufenden PGM auch nicht definiert sind. QAOKL03A und QAOKL02A.

Jemand eine Idee wo man schauen bzw. schrauben kann?

Gruß Ronald

Fuerchau
11-11-16, 10:40
Wenn du dir die Dateien ansiehst dann sind das diese zu SNADS gehören.
Hier liegen die Definitionen von z.B. WRKDIRE, APPN usw.
Ggf. erfolgt manchmal nur ein Zugriff per DDMF o.ä.?

malzusrex
11-11-16, 10:51
Ein Stück weiter bin ich schon.
In dem PGM gibt es einen Workfile ohne Key. In den werden 10-200 Sätze geschrieben.
An andere Stelle wird auf den Anfang der Datei gegangen und Satzweise gelesen und Satz gelöscht.
Danach kommt der nächste Kunde usw. In der Datei sind run 400.000 gelöschte Sätze. Beim SetLL / Read vom ersten Satz verballert er die Zeit.
Komisch ist nur, das ist jede Woche so. Und in allen anderen Wochen ist das für ihn kein Problem.
Dann werde ich wohl das PGM umgestalten müssen.
Aber eigenartig ist das schon. Das gleiche PGM läuft auch auf anderen Kundensystemen. Und dort gab es noch nie Probleme damit.
Gruß
Ronald

Fuerchau
11-11-16, 11:01
Ist die Satzfolge wichtig?
Wenn nicht dann ändere die PF auf REUSEDLT(*YES).
Ansonsten mache regelmäßig (ggf. vor Aufruf des Programmes) einen RGZPFM.

Sporadisch wird wohl eben viel gelöscht.
Wenn dann ohne Key gelesen wird, müssen die gelöschten Sätze überlesen werden, was eben dauert.
Macht das Programm das mehrfach statt nur einmal, erklärt sich die Laufzeit.

malzusrex
11-11-16, 11:35
Satzfolge ist wichtig.
Wir haben uns jetzt dafür entschieden, bei jeden neuen Kunden ein CLOSE/CLRPFM/OPEN zu machen.

Schönes Wochenende
Ronald

Fuerchau
11-11-16, 11:43
Dann hättest du auch einfach eine laufende Nr. als Keyfeld definieren, REUSEDLT(*YES) und nach Key verarbeiten können.
Mit SQL denkt man über so was automatisch nach.