# Locking im Multiuser-Betrieb



## Guybrush Threepwood (8. Mrz 2010)

Hi,
ich habe bislang immer Programme für einzelne Benutzer geschrieben und bin mit SQL mittlerweile halbwegs vertraut (zumindest für meine Zwecke ausreichend). Ich habe immer embedded Databases genommen und arbeite zur Zeit mit H2. Ich beginne, mich in Multi-User-Betrieb einzuarbeiten und in diesem Zusammenhang ins Locking. Pessimistic und Optimistic Lock kenne ich mittlerweile auch.

Kann mir jemand ein Tutorial empfehlen, dass sich mit dem Mehrbenutzerbetrieb von Datenbanken, bzw. der Client-Programmierung auseinander setzt? Auch wichtige Schlagwörter zu diesem Thema, nach denen ich suchen könnte sind sehr willkommen. Es geht speziell darum, dass Nutzer nicht gegenseitig beim Speichern Daten überschreiben.

Viele Grüße,
   Guybrush


----------



## ice-breaker (8. Mrz 2010)

Transaktionen (ACID), Isolation Mode

das sollte alles umfassen


----------



## Guybrush Threepwood (8. Mrz 2010)

Merci! Die Stichworte sind - wie ich mittlerweile nachgelesen habe - sehr umfassend und grundlegend. 
Deswegen vielleicht noch einmal stärker eingeschränkt: Kann ich einzelne Datensätze einer Tabelle auf Read-Only setzen und entweder explizit oder nach einem Time-Out wieder freigeben?


----------



## maki (8. Mrz 2010)

> Kann ich einzelne Datensätze einer Tabelle auf Read-Only setzen und entweder explizit oder nach einem Time-Out wieder freigeben?


Du beschreibst Pessemistic Locking


----------



## Guybrush Threepwood (8. Mrz 2010)

Ok, das ist schon mal gut. Scheinbar kann H2 das nicht - schlecht.

Man könnte ja auch ganz einfach beim Abruf eines Datensatzes einen Timestamp setzen, oder? Beim Aktualisieren des Datensatzes wird dieser gelöscht oder wenn nichts mehr passiert verfällt er nach - sagen wir mal - 30 Minuten. Andere Clients könnten auf diese Weise erfahren, dass jemand mit dem Datensatz arbeitet. Wäre das eine sinnvolle Herangehensweise?

Nachtrag: Scheinbar gibt es bei H2 doch etwas in der Richtung: Advanced
Da muss ich mich erst mal schlau machen.


----------

