Hallo,

wir sind uns doch erst mal einig, dass die nicht gefundenen Sätze sich in einem Buffer des Programmes befinden, das den Trigger gefeuert hat?!
- der Trigger weiß nicht wer ihn ausgelöst hat
- der Trigger kann nicht beeinflussen ob das auslösende Programm mit share oder ohne öffnet
- der Trigger kann nicht beeinflussen ob das auslösende Programm SEQONLY verarbeitet oder nicht
- der Trigger kann nicht beeinflussen ob das auslösende Programm Commit verwendet oder nicht und unter welchem Sperrlevel es arbeitet
- der Trigger soll unabhängig von diesen Konstellationen arbeiten

mein Vorschlag mit FRCRATIO lebt mit der Hoffnung, dass FRCRATIO 1 das Blocken halbwegs sicher abschaltet, die Doku ist da ein wenig Wachsweich iSeries Information Center

Ansonsten bleibe ich dabei: ein von einem Trigger abhängiges Programm sollte den Satz nicht erneut lesen, sondern vom Trigger das passende Image übergeben bekommen, alles andere ist instabil, was ich zuweilen salopp einen Wackelhaufen nenne, was den Autor des Programmes nicht herabwürdigen soll (sorry, falls das jemand anders versteht)

mfg

Dieter Bender


Zitat Zitat von Fuerchau Beitrag anzeigen
Nur so am Rande:

FRCRATIO hat nix mit der Verfügbarkeit des Satzes zu tun, auch mit FRCRATIO <> 1 kann der Satz gelesen werden.

SEQONLY wird bei Update/Insert automatisch ausgeschaltet, wenn ein Update/Insert-Trigger definiert ist.
Gerade weil der Trigger ja jeden einzelnen Satz bearbeiten muss.

Anders siehts da bei Input-Dateien aus. Hier kann SEQONLY verwendet werden und somit im Puffer des Programmes ein ganzer Block vorhanden ist in dem der neu eingefügte Satz eben noch nicht enthalten ist.

Lösung:
Beim Erstellen der Programme Blockung für die Datei ausschalten.
SEQONLY(*NO) reicht da leider nicht, da dies das Blocken eben nicht verhindert.

Mit ODP's ist da etwas vorsichtiger umzugehen, da sonst aktuelle Lesezeiger verstellt werden können.
Hier kann man ggf. mit
OVRDBF ... SHARE(*YES)
OPNDBF ... *ALL
das Blocken verhindern. Allerdings können hier ggf. Satzsperren von untergeordneten PGM'en aufgehoben werden so dass nachfolgende Updates auf die nase fallen (Read fehlt).