[TYPO3-UG Dutch] Record locking
Pim Broens - Redkiwi
broens at redkiwi.nl
Thu Sep 11 13:13:42 CEST 2008
Hoi H.,
De heartbeat wordt alleen gebruikt op een openstaande pagina.
Zolang die pagina openstaat wordt er iedere x seconden een zogenaamde
heartbeat gestuurd die de timestamp update. Zodat, wanneer iemand langer
dan 5 minuten koffie drinken is, er nog geen man overboord is.
Zodra hij/zij klaar is, sluit men het venster, en zal de heartbeat
ophouden. Waardoor de timestamp de 5 minuten zal overschrijden zal het
item open staan voor de volgende gebruiker om te editen.
Met vriendelijke groet,
Pim Broens
-----Oorspronkelijk bericht-----
Van: typo3-ug-dutch-bounces at lists.netfielders.de
[mailto:typo3-ug-dutch-bounces at lists.netfielders.de] Namens H. Hahn
Verzonden: donderdag 11 september 2008 12:17
Aan: typo3-ug-dutch at lists.netfielders.de
Onderwerp: Re: [TYPO3-UG Dutch] Record locking
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
_______________________________________________
TYPO3-UG-dutch mailing list
TYPO3-UG-dutch at lists.netfielders.de
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-ug-dutch
More information about the TYPO3-UG-dutch
mailing list