PDA

View Full Version : CPF5125 oder warum reagiert er nicht auf close



Robi
04-03-14, 11:27
Hi *all

wie schon öfter erwähnt Arbeite ich ab und an in einer Umgebung in der die Dateien alle mit Share(*yes) erzeugt werden.
Im aktuellen Problem-Fall öffnet ein ILE Pgm, ACTGRP QILE, eine Datei für UPD (ohne OVR).
Nach diversen Call's kommt ein OPM-PGM (*DFTACTGRP) das diese Datei für Input öffnet.
Das Joblog meldet KEINEN CPF4123 (Öffnungsauswahlkriterien für gemeinsame Öffnung von Teildatei XXX ignoriert.)
Dieses OPM Pgm macht einen Close auf die Datei und ruft ein anderes OPM PGM, das ebenfalls in der *DFTACTGRP läuft. Dort wird die Datei für update geöffnet und CPF4123 erscheint im Joblog. Der anschließende Update knallt.
Warum greift das Close nicht? (die Datei bleibt offen, keine Meldung im Joblog)
Nach Aussage des Kunden ging das bisher (Komentar in dem Pgm, das den Close macht: "Zumachen wegen Upd. im Folgepgm".
geändert hat sich 'natürlich' nix

also: Programmstapel :
Pgm A, ILE, QILE, open für update
PGM B, ILE, eigene ACTGRP, open Für Input
Pgm C, OPM, open für Input
Pgm C, OPM, Close Datei
Pgm D, OPM, Open für Update, CPF4123

Danke
Robi

Fuerchau
04-03-14, 11:36
Ich vermute mal, dass der Close u.U. nicht erreicht wird.
Ein Open erhöht den Share-Zähler (falls Share aktiv) und ein CLose vermindert diesen wieder.
Das Programm C sollte sich mit *INLR = *ON verabschieden.

SHARE(*YES) birgt meiner Meinung nach sowieso viel zu viele Gefahren ins besonders wenn man auch noch mit diversen ACTGRP's umgeht.

Robi
04-03-14, 11:54
SHARE(*YES) birgt meiner Meinung nach sowieso viel zu viele Gefahren ins besonders wenn man auch noch mit diversen ACTGRP's umgeht.
Ist bekannt aber nicht änderbar:mad:


Das Programm C sollte sich mit *INLR = *ON verabschieden.
Das hilft nix, die oben genannte Aufzählug ist der PgmStapel
also :
Pgm A, ILE, QILE, open für update
A ruft PGM B, ILE, eigene ACTGRP, open Für Input
B ruft Pgm C, OPM, open für Input
Pgm C, OPM, Close Datei
C ruft Pgm D, OPM, Open für Update, CPF4123

ich bin also mit dem Close auf auf Zähler 0!

Robi

Fuerchau
04-03-14, 14:02
Ist PGM-C ein SQL-PGM?

Robi
04-03-14, 14:08
Nein, die OPM Pgmme sind zu 99 % RPT und zu 1 % RPG
Bei den ILE ist alles quer Beet.

Habe mittlerweile rausgefunden, das PGM A vor einer Woche noch ein OPM Pgm war.
Vermut lich hat der Close nie gegriffen, aber es hat funktioniert, das das Pgm A als OPM die Datei für UPDAT aufmachte.
Habe nun die Datei überall als UPDAT dran, lese mit Satzfreigabe und habe ein pseudo Update codiert.
Nicht schön aber funktional.

Robi

Fuerchau
04-03-14, 14:24
Aha, also vorher "nix geändert":)!

Robi
04-03-14, 14:49
Klar.

Überhaubt nix !
Am PGM wurde kein Code verändert --> nix
So ist es doch immer.

Es hat NIE jemand etwas geändert. Und wenn du deine Änderungen aktivierst und ein PC stürzt ab
kommt das von Deinen Anpassungen.
Oder ist das irgenwo nicht so?