phpbar.de logo

Mailinglisten-Archive

Lock Table

Lock Table

Oliver Six mysql-de_(at)_lists.bttr.org
Sat, 15 Dec 2001 17:47:10 +0100


deimeke_(at)_gmx.de (Dirk Deimeke) wrote on 14.12.2001 18:52:00:

>
>Hallo Oliver,
>
>> ich mache das Ganze noch etwas komplizierter: Jeder Client loescht in
>> dem Moment, in dem er exklusiven Zugriff auf die Sperrentabelle
>> erhaelt, alle Locks, die aelter als 5 min. sind. In meinen
>> Applikationen habe ich dann einen Timer, der ca. alle 2 min. kommt
>> und einen Refresh (Update der Lockzeit) auf seine eigenen Locks
>> faehrt. Damit erreiche ich, dass alle Datensatze max. 5 min. laenger
>> als noetig gesperrt sind, was sich bei einem Absturz eines Clients
>> als vertretbare Zeit herausgestellt hat.
>
>das macht auch Sinn. Greifst Du nur mit einem WebInterface auf die Daten  
>zu? Oder benutzt Du weitere Frontends?
>
>Wie sperrt man eigentlich einen einzelnen Datensatz?
>
>Fragen über Fragen.
>
>Dirk
>
>---
>Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
>-->>  http://www.4t2.com/mysql

Hi Dirk,

ich greife immer aus Win mit der libmysql.dll aus C/C++ oder VB auf den 
MySQL zu, da der Großteil meiner Kunden Apps braucht, die auch auf einem MS 
Terminal-Server laufen. Die "Sperren" unterstuetzt der MySQL - soweit ich 
weiss - nicht von Haus aus, deshalb arbeiten meine Apps dann mit dem 
beschriebenen kooperativen Locking auf der Clientseite, d.h. jeder Client 
muss selber nachschauen, ob er den Datensatz bearbeiten darf/kann oder 
nicht. Natuerlich wuerde ich mir so eine Erweiterung des MySQL wuenschen, 
wie z.B. das Anhaengen von "for update" an eine SQL-Abfrage, die alle 
betroffenen Datensaetze bis zum zugehoerigen Update oder der Terminierung 
der entsprechenden Client-Connection automatisch sperrt. Aber man kann ja 
nicht alles haben... Ich koennte mir auch vorstellen, dass man mehr als 
eine "getlock()" gleichzeitig fuer ein kooperatives Locking nutzen koennte, 
aber da habe ich irgendwo im Manual gelesen, dass das by Design nicht 
moeglich ist. 

Ciao Oliver
--
Good programming is 40% experience, 30% skill, 20% RTFM, 10% caffeine, and 
5% attention to detail. 

Oliver Six, CEO
CAHOS GmbH, Cimbernstr. 51, Germany 81377 Muenchen
Phone +49 89 71 01 93 40,  Fax +49 89 71 01 93 41

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive