Du darfst Native-IO und SQL nicht durcheinander bringen.
Bei Native-IO bestimmst du genau welche Datei, also auch LF, du verarbeitest.
Bei SQL kannst du zwar eine LF verwenden, aber SQL nimmt dann die PF, ergänzt die Whereklausel um die Select/Omits und sucht sich dann eine passende LF (ohne Select/Omit!!!) oder Index (hat (bisher) nie einen select/Omit, wobei das ja seit V6 wohl geht).
Außerdem unterstützt SQL keine Multiformat-LF's, dafür gibt's dann Views, die einen "Select ... Union all select ..." enthalten können.

Warum nun die AS/400 die Maintenance des Keys erst beim Open durchführt entzieht sich mir.
Andererseits deutet dein Langläuferprogramm darauf hin, dass gar kein Key angelegt wird.
Ich kann da auch nicht erklären was da bei dir falsch läuft.

Wenn du einen Wartungsvertrag hast dann gib doch mal eine Fehlermeldung an IBM ab.