ja, das ist mir aufgefallen, nur die von dir angegebene Fundstelle hilft da nicht weiter, die bezieht sich auf den Erhalt der Cursor Position und stellt dem wiederholte open/close gegenüber (die den Cursor jedesmal neu positionieren.

Nett, dass du mich auf Stellen in meiner angegebenen Quelle hinweist, aber da bist du schon an der entscheidenden Stelle vorbei:

CLOSQLCSR defines how the programs handles cursors within the embedded SQL programs. It does not have any bearing on how ODPs are created, maintained, or reused.
(bearing würde ich hier als Einfluss übersetzen, aber auch da lasse ich mit mir reden!)

IBM hält sich mit Dokumentation ziemlich bedeckt, was maintenance, creation und reuse von ODPs angeht und da ich davon ausgehe, dass ILE und OPM dieselben APIs benutzen und sich dieses dokumentierte Verhalten auch mit meinen Erfahrungen mit ILE deckt, warte ich immer noch auf aktuellere Information, was länger dauern kann (siehe MI Reference)

D*B





Zitat Zitat von B.Hauser Beitrag anzeigen
Ist Dir auch aufgefallen, dass in dem Dokument 6492409 nur von RPGIII geredet wurde und nicht RPGIV oder ILERPG.

Die Optionen *ENDPGM, *ENDJOB und *ENDSQL können nur bei CRTSQLRPG (sprich RPGIII) und nicht bei CRTSQLRPGI (sprich RPGIV) angegeben werden. Bei CRTSQLRPGI heißen die Optionen *ENDMOD und *ENDACTGRP.

In ILE funktioniert die Option *ENDMOD wie *ENDPGM, während bei der Option *ENDACTGRP der ODP geöffnet bleibt und wiederverwendbar ist, solange die Aktivierungsgruppe nicht beendet wird.

Aus dem Dokument 6492409:


Damit wird auch beim *ENDMOD der ODP gelöscht (discarded = weggeworfen).

Dokumentationen über CLOSQLCSR findet man in der Online Library in Database Performance and Query Optiomization:
General rules for retaining cursor positions for all program calls

Birgitta