BenderD
09-12-04, 11:00
@Baldur:
ein offener ODP wg. eines Inserts verursacht aber keine Sperren, die weh tun, maximal shrxxx für die Datei und record locks gibt es ohne commitment controll hier auch keine.
Und Vorsicht: der CLOSQLCSR ist nur ein impliziter close und garantiert genausowenig wie ein expliziter close (der hier nicht geht) einen close des ODP und eine Aufgabe der zugehörigen Sperre.
Ob der RCLACTGRP die Sperren aufgibt, habe ich nicht im Kopf, aber der geht hier auch nicht, weil das NOMAIN dann ja aus einer anderen ACTGRP aufgerufen wird und dann in den Wald rennt, da das aufrufende Programm nicht neu aktivieren kann (es sei denn, man bindet selber zur Laufzeit), da würde hier new helfen, aber das ist auch Schmonz.
Aber: EXCL Sperre ohne serializable ist und bleibt Bug!
mfg
Dieter
Nur, dass ein Insert-Cursor nicht explizit geschlossen werden kann (es gibt ja keinen Namen dafür).
Durch das closqlcsr=*endmod werden ja auch die Statements (hier das Insert-Statement) beim Verlassen freigegeben und somit der ODP geschlossen (jedenfalls bei meinen Test's).
Ganz sicher geht's mit einer benannten Actgrp, die nach Beenden per RCLACTGRP definitiv aufgelöst wird und auch die (automatische) DB-Anmeldung aufgehoben wird.
ein offener ODP wg. eines Inserts verursacht aber keine Sperren, die weh tun, maximal shrxxx für die Datei und record locks gibt es ohne commitment controll hier auch keine.
Und Vorsicht: der CLOSQLCSR ist nur ein impliziter close und garantiert genausowenig wie ein expliziter close (der hier nicht geht) einen close des ODP und eine Aufgabe der zugehörigen Sperre.
Ob der RCLACTGRP die Sperren aufgibt, habe ich nicht im Kopf, aber der geht hier auch nicht, weil das NOMAIN dann ja aus einer anderen ACTGRP aufgerufen wird und dann in den Wald rennt, da das aufrufende Programm nicht neu aktivieren kann (es sei denn, man bindet selber zur Laufzeit), da würde hier new helfen, aber das ist auch Schmonz.
Aber: EXCL Sperre ohne serializable ist und bleibt Bug!
mfg
Dieter
Nur, dass ein Insert-Cursor nicht explizit geschlossen werden kann (es gibt ja keinen Namen dafür).
Durch das closqlcsr=*endmod werden ja auch die Statements (hier das Insert-Statement) beim Verlassen freigegeben und somit der ODP geschlossen (jedenfalls bei meinen Test's).
Ganz sicher geht's mit einer benannten Actgrp, die nach Beenden per RCLACTGRP definitiv aufgelöst wird und auch die (automatische) DB-Anmeldung aufgehoben wird.