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 Databases