ďťż
 
Firebird i tabela na wylacznosc ďťż
 
Firebird i tabela na wylacznosc
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Firebird i tabela na wylacznosc



Shuwar - 17-03-2007 00:02
Firebird i tabela na wylacznosc
  Firebird. przykład (pominmy niescislosci w skladni):

1. SET TRANS (?)
2.
3. SELECT COUNT(*) AS X FROM TABELA
4. IF (X<10) THEN
5. BEGIN
6. INSERT INTO TABELA ...
7. END
8.
9. COMMIT

- założenie 1: TABELA nie może mieć więcej rekordów niż 10.
- założenie 2: TABELA zawiera 9 rekordów
- mamy dwie takie same transakcje T1 i T2 jak powyżej
- w tej samej chwili T1 wykonuje linię 4. zaś T2 wykonuje linię 3.
- zarówno T1 i T2 odczytają tą samą wartość X = 9, warunek 4.będzie
spełniony
- zarówno T1 i T2 wstawią po jednym rekordzie, a tym samym TABELA
przestanie spełniać założenie pierwsze (będzie zawierała 11 rekordów)

Pytanie: jak zapobiec takiemu problemowi / jak poprawnie skonfigurowac
transakcje?

Rozwiązaniem byłoby:
SET TRANSACTION READ COMMITTED READ WRITE WAIT
RESERVING TABELA FOR PROTECTED WRITE;

gdyby RESERVING TABELA ... blokowala inne transakcje nie tylko przed
modyfikacja ale takze przez CZYTANIEM

Pozdr.
Shuwar





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 17-03-2007 00:02

  Shuwar wrote:
> Firebird. przykład (pominmy niescislosci w skladni):
>
> 1. SET TRANS (?)
> 2.
> 3. SELECT COUNT(*) AS X FROM TABELA
> 4. IF (X<10) THEN
> 5. BEGIN
> 6. INSERT INTO TABELA ...
> 7. END
> 8.
> 9. COMMIT
>
> - założenie 1: TABELA nie może mieć więcej rekordów niż 10.
> - założenie 2: TABELA zawiera 9 rekordów
> - mamy dwie takie same transakcje T1 i T2 jak powyżej
> - w tej samej chwili T1 wykonuje linię 4. zaś T2 wykonuje linię 3.
> - zarówno T1 i T2 odczytają tą samą wartość X = 9, warunek 4. będzie
> spełniony
> - zarówno T1 i T2 wstawią po jednym rekordzie, a tym samym TABELA
> przestanie spełniać założenie pierwsze (będzie zawierała 11 rekordów)
>
> Pytanie: jak zapobiec takiemu problemowi / jak poprawnie skonfigurowac
> transakcje?

Zalockować tabele i dopiero wtedy odczytywać ilość wierszy.

--
P.M.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Firebird - zmiana NULL na NOT NULL [firebird] Czym =?ISO-8859-2?Q?zast=B1pi=E6_postgresowy_inte?==?ISO-8859-2?Q?rval_=3F?= Insert do tabeli danymi z innej tabeli Firebird Insert do tabeli z danych innej tabeli plus dodatkowa wartośćpola (Firebird) firebird - dostep do roznych baz na podstawie nazwy usera,hasla i adresu IP =?iso-8859-2?q?Konfiguracja_Firebirda_pod_k=B1tem_wykorzystan ia_pami=EAci?= =?ISO-8859-2?Q?[firebird]_gdzie_si=EA_podzia=B3y_polskie_literki?= Re: [Firebird] BDE problem z zapisem konfiguracji pod Windows Vista =?iso-8859-2?q?firebird_i_triggery_-_logowanie_historii_zmian_zawarto=B6ci?= =?iso-8859-2?q?[firebird]_-_jak_zastapi=E6_pole_longtext_=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ptsite.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com