Vielleicht liegt es aber auch am fehlenden Verständnis, dass hier unterschiedliche Meinungen herrschen.
Das Lesen einer Datei im CL läuft mit RCVF. Um das Dateiende festzustellen wird auf MONMSG MSGID(CPF0864) abgefragt. Wenn diese MONMSG im CL erreicht wird, ist es definitiv nicht mehr möglich mit POSDBF OPNID(Datei) POSITION(*START) die Datei erneut zu lesen, da durch den letzten RCVF bereits der Dateizeiger im "Nirwana" steht.
Mit einem kleinen Trick kann man dies jedoch umgehen. Vor dem RCVF mit RTVMBRD FILE(Datei) NBRCURRCD(Variable) holt man sich die aktuelle Satzanzahl der zu lesenden Datei. In der RCVF-Schleife einen Zähler+1 mitlaufen lassen. VOR jedem erneutem RCVF den Zähler mit der NBRCURRCD(Variable) vergleichen - sind beide Werte identisch den POSDBF absetzen und der nächste RCVF führt nicht zur MONMSG(CPF0864) und damit geht der Dateizeiger nicht ins "Nirwana".

Gruss Reinhold