Ich möchte nur kurz sagen, dass wir das passende API gefunden und für uns gekapselt haben:


**-- API Prototype: Get list of jobs for record lock --------------**
D RtvRcdLck PR extpgm('QDBRRCDL')
D RlJobList like(JobListDS)
D RlJobListLen 10I 0 const
D RlApiFmtName 8A const
D RlQulFileName 20A const
D RlMbrName 10A const
D RlRrn 10U 0 const
D RlErrRtn like(ApiErrorDS)

Das API liefert eine Liste der Jobs, die eine Satzsperre auf dem zu prüfenden Satz halten oder die auf eine Sperre warten.
Läuft sehr gut und schnell. Wenn man das API benutzt, muss man die Satzwartezeit nicht einstellen. Das Ergenis kommt sofort (ist ja auch klar, denn man macht ja keinen chain).

Wir haben das bei uns jetzt in etwa so eingesetzt:

if not isLocked('KUNDENDAT':satznr);
chain(e) kundendatei ...
...

Die isLocked Funktion bringt dann auch gleich eine Meldung, welcher Mitarbeiter den Datensatz sperrt.

Dieter