Dies deutet vor allem auf nicht geschlossene Cursor und ggf. viele verschiedene dynamische SQL's hin.

Der SQL-Optimizer hält Dateien offen (ODP's) wenn der selbe Zugriff mindestens 2 Mal erfolgt.
Aber selbst wenn man verschiedene SQL's absetzt und vorherige Cursor auch korrekt geschlossen werden, werden normalerweise die ODP's wieder verwendet.

Wenn immer wieder die selbe Datei geöffnet wird, deutet das eben auf fehlende "Close Curser" hin.

Selbst bei dynamischen SQL's kann ich in Cobol/RPG keine dynamischen Cursor-Namen vergeben, so dass ich eigentlich erst einen Close machen muss bevor ich für den selben Cursor ein neues Statement prepare.

Ggf. sollte man vor einem Prepare Statement ein Drop Statement einbauen.

Arbeitet man ggf. mit dem CLI-Interface (C-Befehle SQLxxxx), kann man natürlich auch Cursor dynamisch anlegen.

Zusammen gefasst:
Zu viele geöffnete Cursor, irgendwann platzt halt das System.

Nur so zur Info:
Als ich bei einer Verbindung zu einer Oracle-Datenbank vergessen hatte neben dem Close Cursor auch ein Drop Statement einzubauen, war auch nach ca. 1000 Abfragen mit der Meldung "Ressourcen überschritten" Schluss.