DB2 Connect Krótkie wprowadzenie PE

Możliwość aktualizacji wielostanowiskowej (zatwierdzanie dwufazowe)

W rozdziale tym można znaleźć przegląd funkcji aktualizacji wielostanowiskowych, wykorzystywanych w scenariuszach z serwerami baz danych hosta i systemu AS/400. Opisano tu produkty i komponenty konieczne do implementacji aplikacji PC, UNIX i aplikacji sieciowych, aktualizujących wiele baz danych DB2 w ramach jednej transakcji.

Aktualizacja wielostanowiskowa, znana także jako rozproszona jednostka pracy lub zatwierdzanie dwufazowe, to funkcja umożliwiająca aplikacji aktualizację danych na wielu serwerach zdalnych baz danych z zachowaniem integralności danych. Dobrym przykładem aktualizacji wielostanowiskowej jest transakcja bankowa, wymagająca transferu pieniędzy z jednego konta na inne, znajdujące się na innym serwerze baz danych.

W wypadku takiej transakcji czynnik krytyczny polega na tym, aby aktualizacje tworzące operację debetowania jednego konta nie zostały zatwierdzone, dopóki nie zostaną zatwierdzone aktualizacje wymagane do przeprowadzenia operacji kredytowania drugiego konta. Aktualizacja wielostanowiskowa odnosi się do sytuacji, gdy dane reprezentujące konta są zarządzane przez dwa różne serwery baz danych.

Produkty DB2 umożliwiają pełną obsługę aktualizacji wielostanowiskowej. Obsługa ta jest dostępna dla aplikacji projektowanych przy użyciu zwykłego języka SQL, jak również dla aplikacji korzystających z monitorów transakcji, implementujących specyfikację interfejsu X/Open XA. Przykładami takich monitorów transakcji są produkty IBM TxSeries (CICS i Encina), IBM Message i Queuing Series, IBM Component Broker Series, IBM San Francisco Project, a także Microsoft Transaction Server (MTS), BEA Tuxedo i inne. Wymagania dotyczące konfiguracji zależą od tego, czy wykorzystywane są aktualizacje wielostanowiskowe w rodzimym języku SQL, czy aktualizacje wielostanowiskowe realizowane za pośrednictwem monitorów transakcji.

Oba typy programów aktualizacji wielostanowiskowych, zarówno napisane w rodzimym języku SQL, jak i korzystające z monitorów transakcji, muszą być prekompilowane z opcją CONNECT 2 SYNCPOINT TWOPHASE. Oba też mogą używać instrukcji SQL Connect do wskazywania bazy danych, której dotyczyć mają kolejne instrukcje SQL. Jeśli nie ma monitora transakcji, który poinformowałby DB2, że będzie koordynował transakcję (na co wskazuje otrzymanie przez DB2 wywołania xa_open, gdy monitor ustanawia połączenie z bazą danych), koordynacją transakcji zajmie się oprogramowanie DB2.

Jeśli w aktualizacji wielostanowiskowej wykorzystuje się monitor transakcji, aplikacja musi zażądać zatwierdzenia transakcji lub jej wycofania za pomocą funkcji API monitora przetwarzania transakcji, na przykład CICS SYNCPOINT, Encina Abort(), MTS SetAbort().

Jeśli aktualizację wielostanowiskową przeprowadza się za pomocą rodzimego języka SQL, używa się zwykłych komend SQL COMMIT i ROLLBACK.

Aktualizacja wielostanowiskowa sterowana przez monitor transakcji może koordynować transakcję, która dotyczy zarówno menedżerów zasobów DB2, jak i innych, na przykład Oracle, Informix, SQLServer. Aktualizacja wielostanowiskowa w rodzimym języku SQL używana jest tylko dla serwerów DB2.

Aby można było wykonać aktualizację wielostanowiskową, każda z baz danych, uczestnicząca w rozproszonej transakcji musi być zdolna do obsługi rozproszonej jednostki pracy. W czasie pisania tego tekstu rozproszoną jednostkę pracy (DUOW) obsługiwały następujące serwery DB2 (co umożliwia im uczestniczenie w transakcjach rozproszonych):

Rozproszona transakcja może zaktualizować dowolną kombinację serwerów baz danych, które są obsługiwane. Na przykład aplikacja w ramach jednej transakcji może zaktualizować kilka tabel w bazie DB2 Universal Database w systemie operacyjnym Windows NT lub Windows 2000, w bazie DB2 for OS/390 i bazie DB2/400.


[ Początek strony | Poprzednia strona | Następna strona | Spis treści | Indeks ]