Další informace o instalaci a konfiguraci

Umožnění vícemístné aktualizace (dvoufázové potvrzování transakcí)

Tento oddíl obsahuje základní informace o funkci vícemístné aktualizace vzhledem k variantám, které obsahují databázové servery na hostitelském systému nebo systému AS/400. Popisuje produkty a komponenty potřebné pro implementaci aplikací pro PC, UNIX a WWW, které v jedné transakci aktualizují více databází DB2.

Vícemístná aktualizace, známá také jako dvoufázové potvrzování transakcí nebo distribuovaná jednotka práce (distributed unit of work - DUOW), je funkce, která umožňuje vašim aplikacím aktualizovat data na více vzdálených databázových serverech se zárukou integrity. Příkladem vícemístné aktualizace je bankovní transakce, která spočívá v převodu peněz z jednoho účtu na druhý účet nacházející se na jiném databázovém serveru.

V takové transakci je rozhodující to, že aktualizace, která implementuje snížení stavu jednoho účtu, nesmí být potvrzena, dokud nejsou také potvrzeny aktualizace potřebné pro připsání částky na druhý účet. Důvody k použití vícemístné aktualizace nastávají v okamžiku, kdy se údaje odpovídající těmto účtům nacházejí na dvou různých databázových serverech.

Produkty DB2 poskytují úplnou podporu vícemístných aktualizací. Tato podpora je dostupná jak aplikacím vyvinutým pomocí standardního jazyka SQL, tak i aplikacím využívajícím transakční monitory, které implementují specifikaci rozhraní X/Open XA. Jako příklad transakčních monitorů lze uvést produkty IBM TxSeries (CICS a Encina), IBM Message and Queuing Series, IBM Component Broker Series, IBM San Francisco Project nebo Microsoft Transaction Server (MTS), BEA Tuxedo a některé další. Tyto produkty mají různé nároky na nastavení, podle toho, zda je použita vícemístná aktualizace pomocí samotného SQL nebo pomocí transakčního monitoru.

Programy používající vícemístnou aktualizaci ať už pomocí SQL, nebo pomocí transakčního monitoru, musí být předkompilovány s volbou CONNECT 2 SYNCPOINT TWOPHASE. V obou případech lze použít příkaz Connect jazyka SQL, kterým se naznačí, které databáze budou pro následné příkazy SQL použity. Pokud neexistuje žádný transakční monitor, který by produktu DB2 sdělil, že bude transakci koordinovat (produkt DB2 to pozná tak, že od produktu TP Monitor obdrží volání xa_open, kterým se naváže databázové spojení), bude pro koordinaci transakce použit software DB2.

Při použití vícemístné aktualizace pomocí produktu TP Monitor musí aplikace požadavek na potvrzení nebo odvolání transakce podat pomocí rozhraní API transakčního monitoru, například CICS SYNCPOINT, Encina Abort(), MTS SetAbort().

Při použití vícemístné aktualizace pomocí samotného SQL musí být použity normální příkazy COMMIT a ROLLBACK jazyka SQL.

Vícemístná aktualizace pomocí transakčního monitoru může koordinovat transakci, která přistupuje jak ke správcům prostředků DB2, tak i k jiným, například Oracle, Informix, SQLServer atd. Vícemístnou aktualizaci pomocí samotného SQL lze použít pouze pro servery DB2.

Má-li transakce vícemístné aktualizace fungovat, musí všechny databáze, které se distribuované transakce účastní, podporovat distribuovanou jednotku práce. V současné době podporují distribuovanou jednotku práce (a tedy se mohou účastnit distribuované transakce) následující servery:

Distribuovaná transakce může aktualizovat jakoukoli kombinaci podporovaných databázových serverů. Vaše aplikace může například jedinou transakcí aktualizovat několik tabulek serveru DB2 Universal Database na Windows NT nebo Windows 2000, databázi serveru DB2 for OS/390 a databázi serveru DB2/400.


[ Začátek stránky | Předchozí stránka | Další stránka | Obsah | Rejstřík ]