[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