Hallo
Nachdem ich einige Produkt-spezifische Dokumentationen von Datenbanken und Entwicklungswerkzeugen zum Thema Isolation Level in Transaktionen betrachtet habe, kam ich zum Schluss das Read Committed wohl die beste Option ist und z. B. bei Oracle auch gleich Default-Einstellung ist.
Ein explizites Row Lock wie es z. B: in Oracle mit der Anweisung SELECT … FOR UPDATE möglich wäre, ist mir persönlich zu restriktiv (ich möchte lieber optimistisches Locking) und vermutlich auch zu wenig performant.
Bis zu diesem Zeitpunkt habe ich das Ganze noch eher theoretisch und Produkt-unabhängig betrachtet (ADO.NET; ADO Classic; JDBC; Oracle; SQL-Server) – nun konkret (mit C# .NET 2.0 auf MS-SQL (evtl. Oracle)
Meine Frage ist nun, muss ich die Logik für optimistisches Locking (mit einer Record-Versions ID) zwangsläufig selbst programmieren (z. B. in Stored Procedures) oder nimmt mir das die DB-Schicht ab ? Obwohl ich es nicht grundsätzlich ablehne oder ausschliesse, so habe ich doch so meine Vorbehalte gegen den „Ungeist“ des Datenbindens mit DataSets etc. da ich saubere Tiers haben möchte.