Timeout pri Table Locks v Oracle 8.0.5
Jan Serak
sherry na pikebo.cz
Pátek Únor 22 08:23:30 CET 2002
"Mikač Martin" wrote:
>
> Zamknu tabulku v EXCLUSIVE MODE a potrebuji nastavit maximalni dobu zamknuti
> tabulky pro pripad ze nekdo utrhne kabel, aby nebyla tabulka stale
> nepristupna.
>
> Prosim o radu jak a kde? Nebo aspon na co se mam zamerit, abych nasel
> spravne reseni.
Predne: spravne reseni patrne nenajdete, ponevadz je to spatne
polozena otazka. Veskere, at uz implicitni nebo explicitni zamky
existuji po dobu behu transakce. Zasadne nemuzete po databazovem
systemu pozadovat, aby odemkl _cokoliv_ z duvodu nejakeho timeoutu,
kdyz bezi transakce, ktera si nejake objekty zamkla.
V pripade utrzeni kabelu uvazujme v prostredi client/server
(distribuovany
server nebudu predpokladat, nebot o nem v podstate nic nevim a patrne
to ani nebude tazateluv pripad) mohou nastat dva scenare:
- server ztrati kontakt s klientem a automaticky sezeni ukonci => neni
co resit, nebot ukoncenim sezeni se ukonci bezici transakce a tedy se
i veskere touto transakci zamcene objekty uvolni
- klient ztrati kontakt z databazi, ale transakce nadale bezi; v takovem
pripade bud DBA vi, ze transakce dobehne (commit je napr. v ulozene
procedure) a tudiz to muze nechat dobehnout, nebo DBA vi, ze commit musi
byt zadan klientem a tudiz bezici transakce dobehnout nemuze a sezeni
musi byt ukonceno rucne
Otazka tedy muze znit: jak detekovat sezeni nekomunikujici s klientem
a jak je pripadne rucne ukoncit?
Na tuto otazku vsak zcela jiste najdete odpoved v administratorske
prirucce Vaseho databazoveho systemu.
Jan Serak
Další informace o konferenci Test