-
satz nach sqlupdate noch gesperrt
Moin,
ich hab hier ein ILERPGPgm das mit SQL einen Satz liest, in diesem dann 2 Werte Updatet (auch sql) und ein (uraltes) Verarbeitungspgm ruft.
Diese Verarbeitungspgm kann nun den eben upgedateten Satz nicht lesen.
Commit steht auf *none
Code:
Satz 751795 in Teildatei myLogicalFile ist bereits für diesen Job gesperrt.
E/A-Fehler CPF5032 in maLogicalFile erkannt (C G S D F).
Code:
eval sql_stm = select x, y from datei where ... for update
DECLARE C1 SCROLL CURSOR FOR SE_FLD1
PREPARE SE_FLD1 FROM :SQL_Stm
fetch first from... into ...
dow ...
if ...
Update datei set feld1 = :wert1, feld2 = :wert2 where current of c1
call 'altpgm'
Warum gibt SQL den Satz mit dem Update nicht frei bzw was muß ich machen, damit er frei wird ?
Danke
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
... 2 Möglichkeiten:
- der erste update hat nicht geklappt, dann bleibt der Satz bis zum nächsten fetch dieses cursors gesperrt !!!
- Software defect => PTF Bestellen
am einfachsten ist dieses Geschäft immer mit Commit, dann gibt die Commit Operation die Sperren frei.
D*B
-
Hallo Dieter,
lt. Joblog hat der Update geklappt
Commit kann ich nicht 'mal eben' einführen.
Werde den Job mal so umbauen, das noch ein Fetch kommt
Melde mich
Gruß
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
... das ist eines der größten Vorurteile, seit ILE geht das eben doch, sogar Programm für Programm, wenn man ein paar wenige Grundregeln beachtet.
D*B
 Zitat von Robi
Commit kann ich nicht 'mal eben' einführen.
-
Das Problem ist die Definition im Select ... for update !
"for update" sperrt bereits beim Lesen, so dass anschließend beliebig viele "Update ... current of" durchgeführt werden können.
Dadurch darf ja der Update den Satz eben nicht freigeben!
Zu beachten ist auch, dass bei Satzsperre bereits der Select einen SQLCOD <> 0 liefert.
Wenn du den "for update" wegläßt und den Update mit Schlüsseln ergänzt erfolgt die Sperre erst beim Update mit anschließender Freigabe (wenn ohne commit, ansonsten erst beim Commit/Rollback).
Du solltest daher auch den SQLCOD nach dem Update prüfen bzw. die Anzahl der betroffenen Sätze.
-
... die offizielle Doku sieht das anders
http://publib.boulder.ibm.com/infoce...Frbafycncr.htm
 Zitat von Fuerchau
Das Problem ist die Definition im Select ... for update !
"for update" sperrt bereits beim Lesen, so dass anschließend beliebig viele "Update ... current of" durchgeführt werden können.
Dadurch darf ja der Update den Satz eben nicht freigeben!
Zu beachten ist auch, dass bei Satzsperre bereits der Select einen SQLCOD <> 0 liefert.
Wenn du den "for update" wegläßt und den Update mit Schlüsseln ergänzt erfolgt die Sperre erst beim Update mit anschließender Freigabe (wenn ohne commit, ansonsten erst beim Commit/Rollback).
Du solltest daher auch den SQLCOD nach dem Update prüfen bzw. die Anzahl der betroffenen Sätze.
-
When FOR UPDATE is used, FETCH operations referencing the cursor acquire an exclusive row lock.
Bzgl. des Entsperrens nach "Update current of" kann ich nichts entdecken.
-
... dann geh mal einen link tiefer (unter commit)
http://publib.boulder.ibm.com/infoce...Frbafycncr.htm
und da Tabelle 26
 Zitat von Fuerchau
When FOR UPDATE is used, FETCH operations referencing the cursor acquire an exclusive row lock.
Bzgl. des Entsperrens nach "Update current of" kann ich nichts entdecken.
Similar Threads
-
By Allrounder in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-02-08, 13:48
-
By heini in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 27-06-06, 11:34
-
By Toschie in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 31-05-05, 11:37
-
By sarge in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 28-12-04, 11:26
-
By rebe in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 16-04-04, 09:29
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks