🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #281

Re: Blokowanie rekordów

#281
From: Robin Wschód
Date: Mon, 19 Apr 1999 21:39
44 lines
3339 bytes
Mon, 19 Apr 1999 08:26:38 +0200, Jarek Zgoda <jzgoda@kki.net.pl>
napisał(a):

>> W InterBase'ie zastosowano metody blokowania optymistycznego. Samo
>> otworzenie transakcji i przejście do edycji jednego z wierszy uzyskanego w
>> wyniku zapytania nie powoduje zablokowania rekordu. A dlaczego? Dlatego, że
>> serwer nie wie, że jest wykonywana edycja rekordu. Wszystkie operacje
>> dzieją się na stacji roboczej, która musi powiadomić serwer o chęci
>> zablokowania rekordu i uzyskać na to jego zgodę lub nie. To co stosuje
>> Psujak to właśnie jest wykorzystanie blokowania InterBase'a. Jeśli dodaje
>> on pole do tabeli, którą edytują użytkownicy, a następnie zmienia jego
>> wartość, to próba zablokowania tego samego rekordu przez inną transakcje
>> skończy się informacją o błędzie zakleszczenia transakcji (deadlock). Na
>> tym właśnie polega blokowanie rekordów, a nie na wpisywaniu wartości! Nawet
>> jeśli Psujak przy wchodzeniu do edycji nadpisywałby pole wartością 0, a nie
>> 1 to i tak rekord będzie zablokowany dla innych transakcji (użytkowników).
>> Inaczej trzeba by tylko było obsłużyć sprawdzanie blokady. Blokadę sprawdza
>> się przez jej założenie! Jeśli się nie uda i wystąpi deadlock, to znaczy,
>> że rekord jest zablokowany, a jeśli założenie blokady się powiedzie, to
>> rekord można edytować.
>> Mam nadzieję, że treść nie jest zbyt agresywna. Zapraszam do dyskusji na
>> ten temat.
>
>Swietnie. Czyli - nic sie nie da zrobić? 

przecie napisał jak to zrobić

>A chodziło mi tylko o to, jak
>sprawdzić, czy żądanie blokady będzie przez serwer rozpatrzone
>pozytywnie...  

po co ?! możesz po prostu użyć serwera

>Dowiedziałem się własnie, że IB od wersji 4 ma tabele
>systemowe, w których zapisuje dane o blokowaniu wierszy. Zastanawiam się
>teraz, jak te informacje wykorzystać w praktyce. Wolałbym, żeby
>niepowołane końcówki nie miały dostępu do tabel systemowych.

to bez sensu, dostęp do nich jest asynchroniczny, serwer w każdej
chwili może zmienić zawartość i ty nie możesz się nią kierować bo może
nie być już aktualna, tak samo ustawianie pola z wartością bool jest
asynchroniczne, nim klient otrzyma informacje, że jest wolne może być
zajęte i odwrotnie, nim klient stwierdzi, że jest zajęte będzie już
wolne, poza tym nie musisz
Technical Details
Message-ID: <37afa1c5.192979079@news.tpnet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!cyfronet!news.nask.pl!orion.cst.tpsa.pl!news.tpnet.pl!not-for-mail
References: <3715CA78.F35A7F92@kki.net.pl> <ujBR2.1955$O1.27094@news.tpnet.pl> <01be88ce$1a0db8e0$037f8080@modem> <371ACC9E.A1973FE9@kki.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!cyfronet!news.nask.pl!orion.cst.tpsa.pl!news.tpnet.pl!not-for-mail
From: Robin Wschód <rwschod@free.polbox.pl>
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: Re: Blokowanie rekordów
Organization: rw
Reply-To: rwschod@free.polbox.pl
Message-ID: <37afa1c5.192979079@news.tpnet.pl>
References: <3715CA78.F35A7F92@kki.net.pl> <ujBR2.1955$O1.27094@news.tpnet.pl> <01be88ce$1a0db8e0$037f8080@modem> <371ACC9E.A1973FE9@kki.net.pl>
X-Newsreader: Forte Agent 1.5/32.452
MIME-Version: 1.0
Lines: 46
Date: Mon, 19 Apr 1999 21:39:09 GMT
NNTP-Posting-Host: 212.160.16.151
X-Complaints-To: abuse@tpsa.pl
X-Trace: news.tpnet.pl 924557960 212.160.16.151 (Mon, 19 Apr 1999 23:39:20 MET DST)
NNTP-Posting-Date: Mon, 19 Apr 1999 23:39:20 MET DST
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit