[TYPO3-UG Dutch] Record locking

H. Hahn h.hahn at hahn-informatica.nl
Thu Sep 11 12:17:15 CEST 2008


Alvast bedankt. Alleen dat van die heartbeat snap ik niet helemaal. Als 
ik een timout heb van bijv. 5 minuten, en ik laat automatisch elke 
minuut dat datum-/tijdveld updaten, dan is het effect per saldo toch 
hetzelfde als helemaal geen timeout? Tenminste, ik neem aan dat dit 
datum-/tijdveld bedoeld is als de starttijd van de timeout?
H. Hahn

Rudy Gnodde schreef:
> Hallo H.,
>
> H. Hahn wrote:
>> De klant wil met meer dan een redacteur kunnen werken. Het gevaar 
>> bestaat dus dat redacteur A en redacteur B per ongeluk tegelijk aan 
>> dezelfde pagina gaan werken. Er is dus een vorm van record locking 
>> nodig. Daar heb ik alleen geen enkele ervaring mee.
>>
>> Nu lijkt me een simpele record locking niet zo moeilijk te maken. 
>> Gewoon een vlag (bijv. een extra veld in de databasetabel) die 
>> aangeeft dat er iemend bezig is met die alinea (ik heb een record per 
>> alinea, dus meerdere records per pagina). Als de betreffende 
>> redacteur de pagina sluit, wordt de vlag gereset.
>>
>> Maar als nu intussen door welke oorzaak dan ook de verbinding tussen 
>> browser en server wegvalt, zou die vlag nooit meer gereset worden en 
>> het betreffende record dus niet meer wijzigbaar zijn. Een gewone 
>> timeout lijkt me ook bezwaarlijk; iemand kan immers net even een 
>> kopje koffie aan het drinken zijn of zo, waardoor die vlag mogelijk 
>> te vroeg gereset wordt.
>> Ook kan ik die vlag in plaats van de waarde "1" (= "bezig") en "0" (= 
>> "vrij") de waarde van de session_id resp. "leeg" geven. Bij elke 
>> poging om iets te wijzigen of op te slaan kan ik de session_id 
>> vergelijken met die in be browser (cookie fe_typo_user). Maar dat 
>> levert nog geen criterium op voor het resetten van de vlag.
>>
>> Weet iemand bruikbare oplossing voor het veilig (dwz. niet te vroeg 
>> en niet te laat) resetten van zo'n vlag? Graag oplossingen in PHP 
>> en/of MySQL, maar niet in Typoscript (mijn FE-editing is niet als 
>> "extensie" uitgevoerd en kan dus niet met TS overweg).
>> Bij voorbaat dank.
>> H. Hahn
>
> De beste manier voor een record locking meganisme is om met een 
> datum/tijd en een timeout te werken. Als iemand een record begint te 
> bewerken zet je de datum/tijd in een databaseveld. Na bv 5 minuten 
> geen activiteit is het record weer vrij.
>
> Nu geef je zelf al aan dat dit niet wenselijk is, want wat als er 
> iemand langer van 5 minuten weg is om koffie te halen. Dat probleem 
> kun je oplossen met een heartbeat. Je moet dan via Ajax of een hidden 
> iframe of iets dergelijks regelmatig automatisch een aanvraag naar de 
> server doen waardoor het datum/tijd veld wordt geupdate. Als je de 
> timeout op 5 minuten hebt staan is een heartbeat van eens in de minuut 
> meer dan genoeg.
>
> Met vriendelijke groet,
>
> Rudy Gnodde
> WIND Internet
> http://www.windinternet.nl


More information about the TYPO3-UG-dutch mailing list