Zitat Zitat von Fuerchau Beitrag anzeigen
Auch bei SQL erlebt man schon sein blaues Wunder.
Vergessen wird da gerne, dass jede ACTGRP seine eigene Commitdefinition haben kann da der Default für STRCMTCTL wiederum CMTSCOPE(*ACTGRP) ist.
Serviceprogramme werden da auch schon mal gerne in eigene ACTGRP's gesteckt.
Hier wird es dann schon mal mit den Commit-Grenzen (Transaktionen) schwierig und zu Satzsperren (ACTGRP1 und ACTGRP2) und Deadlocks kommt es da mitunter auch.
... da gibt es ein paar ganz einfache Grundregeln:
- Commit Master hat eine named ACTGRP und nur der darf commit/rollback machen
- commit slaves haben ACTGRP *CALLER
- wenn die Transaktion komplett ist, beendet der commit master die transaktion mit commit, wenn alles geklappt hat, hat etwas nicht geklappt (auch bei einer Satzsperre einer konkurrierenden Transaktion) mit rollback und alle Sperren werden freigegeben.

man muss das nur wollen!!!

D*B

PS: das ist übrigens Stand der Technik - und alles andere ist nach europäischem Produkthaftungsgesetz fehlerhaft.