Nun, da das Programm ja mit CPF stirbt, kann man das gezielt abfangen, die Nachricht per RCVMSG auslesen und dann den WRKOBJLCK absetzen.

Das SQL nicht sperrt habe ich nicht gesagt nur dass SQL nicht exclusiv sperrt wie es hier den Anschein hat.

Ein Select sperrt normalerweise nie die Daten ausgenommen 2 Varianten:

CommitControl mit Lesesperre (die Art fällt mir i.M. nicht ein) und einen expliziten

select ...
for update of

Ein "for read only" ist ohne obige Commitdefinition nur Dokumentation.

Ansonsten können beim Select keine Satzsperren auftreten, da wäre dann was falsch.