[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Dlugie transakcje



> -----Original Message-----
> From: Henryk Jusza [mailto:henju@pg.gda.pl]
> Sent: Monday, February 04, 2002 2:41 PM
> To: progress@zeto.bydgoszcz.pl
> Subject: Re: Dlugie transakcje
> 
> 
> opiekuje sie baza Progress 9.1 na systemie AIX 4.3.  Ostatnio 
> zdarzylo mi
> sie kilka razy, ze baza danych zatrzymala sie. Powodem tego bylo
> zapelnienie pliku BI.  Prawdopodobnie przyczyna tego byla "dluga
> transakcja". Ktos rozpoczal transakcje i .. poszedl do domu.
> 
> Witam !
> 
> Nie bardzo rozumiem co to znaczy "zapełnienie pliku bi". Plik 
> ten zmienia swoją wielkość w miarę potrzeb i nie bardzo wiem 
> jak się może "zapełnić'.
> 
> Jeśli sformułowanie to oznacza, że na dysku zabrakło miejsca 
> na ten plik i serwer nie mógł go rozszerzyć, to przyczyna 
> tego jest raczej inna niż to, że ktoś poszedł do domu. To 
> sugeruje raczej, że któryś z programów aplikacji 
> korzystających z bazy zbyt dużo danych aktualizuje w jednej 
> transakcji. Jest to czasami efekt nie zamierzony, jeśli 
> programista piszący ten program zrobił to nie myśląc co z 
> tego wyniknie. Taki program trzeba poprawić, chyba że 
> rzeczywiście jedna transkacja musi zawierać bardzo dużo 
> aktualizacji bazy, to wtedy należy plik .bi  umieścić na 
> innym dysku z większą ilością wolnego miejsca (lub na kilku 
> dyskach - wiele woluminów). Jeśli taka transakcja zajmuje 
> dużo różnych zapisów, to ochroną przed tym może być 
> ustawienie parametru startowego serwera -L (ilość blokad) na 
> mniejszą wartość. Wtedy program, który chce zająć dużo 
> zapisów upadnie i będzie wiadomo który to program jest 
> przyczyna problemów.
> 
> Gdyby ktoś poszedł do domu i zostawił otwartą transakcję (w 
> której nie wykonuje się zbyt dużej ilości aktualizacji), to 
> plik .bi by nie rósł, a pracę innych programów korzystających 
> z bazy wstrzymywałyby raczej blokady EXCLUSIVE-LOCK 
> niektórych zapisów, do których chciałyby się dostać 
> wstrzymane programy.
> 
> Pozdrawiam,
> 
>                     
> Henryk Jusza               mailto:henju@pg.gda.pl

Witam,

Pozwole sobie sie nie zgodzic. Pozostawienie dlugo otwartej transakcii
rzeczywiscie powoduje narastanie pliku .bi. Dzieje sie tak dlatego,
ze BI cluster, w ktorym znajduje sie informacja o otwartej transakcii
az do zakonczenia transakcii jest oznaczony jako 'busy', w zwiazku z
czym baza nie moze ponownie do niego pisac w momencie, kiedy BI cluster 
chain dostanie sie ponownie do tego clustera. W tym momencie jest
automatycznie wytwarzany i dolaczany do lancucha nowy cluster - .bi rosnie.
Moze nie opisalem tego zbyt zrozumiale, polecam przeczytac dokumentacje 
"Database Administration Guide and Reference", rozdzial 12.5.2 - Before
Image I/O.

A teraz co z tym zrobic.
Pomysl monitorowania _trans jest dobry, ja bym tylko dodal trzecia
mozliwosc reakcji - odlaczenie uzytkownika od bazy. Lub jeszcze lepiej
po pierwszej godzinie automatyczne wygenerowanie mailu a po drugiej
odlaczenie.

Pozdrawiam,

Piotr Ryszkiewicz
------
Strona WWW:     http://pluton.pol.lublin.pl/pugpl/index.htm
Obsluga listy:  listserv@zeto.bydgoszcz.pl
Archiwum listy: http://www.zeto.bydgoszcz.pl/progress/index.html
------