Mailinglisten-Archive |
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