Posted By: medved (A~z na v~eky Mikov~ce.) on 'CZdatabases'
Title:     Re: Dvoufazovy commit(was: teorie)
Date:      Thu Feb 10 18:00:34 2000

> Muze mi nekdo poradit
>  co je to dvoufazovy potvrzovaci protokol

Klasicke rizeni transakci asi znas. Je tam nekde begin transaction a konci to 
bud potvrzenim (commit) nebo zrusenim (rollback) pricemz se vzdy bud provede 
vse nebo nic.

Tento jednoduchy commit funguje v ramci jednoho databazoveho serveru. Pokud 
ale mas transakci, ktera zahrnuje operace s daty na vice databazovych 
serverech (i ruznych dodavatelu), nelze tuto 'klasickou' transakci pouzit.

Je nutno pouzit protokol pro dvoufazovy commit na ktery se ptas. Existuji dva 
nejrozsirenejsi systemy:

MSDTC (MicroSoft Distributed Transaction Control) a XA protocol (od IBM)

Funguji tak, ze pred commitem se v kazdem db serveru provede prikaz 
'prepare', ktery overi, zda v danem db serveru probehne commit v poradku (ale 
zatim se data necommituji) a pokud tzv. transakcni koordinator (Tva aplikace 
nebo nejaky transakcni monitor skrz ktery se pripojujes k datum) obdrzi 
zpravu, ze prepare prikaz probehl v poradku, tak teprve potom vysle commit do 
vsech db serveru. V pripade rollbacku vysle trans. koordinator rollback do 
vsech db serveru. 

Vetsina db serveru musi mit pro podporu dvoufazoveho commitu nainstalovanu 
zvlastni 'systemovou' databazi (v Sybase je to xadb), pomoci ktere provadeji 
prepare prikaz. 

> anebo aspon odkaz na teorii rizeni dbs na webu, pokud mozno v cz?

Tou 'teorii rizeni dbs' myslis co? Transakce?

> -
> Az mi bude tak sto deset,
> prijde buh a zmackne reset.
>                        k.p.

Bye

Medved

Si vis pacem, para bellum.

Search the boards