Dette kapittelet inneholder en oversikt over funksjonen for flerstedsoppdatering, siden den blir brukt i scenarier som omfatter vertsdatabasetjenere og AS/400-databasetjenere. Det beskriver produkter og komponenter du må ha for å implementere PC-, UNIX- og web-applikasjoner som oppdaterer flere DB2-databaser i samme transaksjon.
Flerstedsoppdatering, også kalt distribuert arbeidsenhet (DUOW) og tofaseiverksetting, er en funksjon som gjør det mulig for applikasjonene å oppdatere data i flere fjerntliggende databasetjenere med garantert integritet. Dette kan for eksempel være en banktransaksjon som omfatter overføring av penger fra en konto til en annen på en annen databasetjener.
I slike transaksjoner er det helt avgjørende at oppdateringer som omfatter trekk fra en konto, ikke blir iverksatt med mindre oppdateringer som er nødvendig for å overføre penger til den andre kontoen, også blir iverksatt. Hensynene i forbindelse med flerstedsoppdatering gjelder når to ulike databasetjenere styrer dataene for disse kontoene.
DB2-produktene har en omfattende støtte for flerstedsoppdateringer. Denne støtten er tilgjengelig for applikasjoner som er utviklet ved hjelp av vanlig SQL samt applikasjoner som bruker transaksjonsoveråkerprodukter (TP-overvåkere) som implementerer X/Open XA-grensesnittspesifikasjoner. IBM TxSeries (CICS og Encina), IBM Message and Queuing Series, IBM Component Broker Series, IBM San Francisco Project samt Microsoft Transaction Server (MTS) og BEA Tuxedo er eksempler på slike TP-overvåkerprodukter. Konfigureringskravene varierer avhengig av om det blir brukt flerstedsoppdatering ved hjelp av SQL eller TP-overvåkeren.
Både programmene for flerstedsoppdatering med SQL og TP-overvåkeren må forkompileres med CONNECT 2 SYNCPOINT TWOPHASE-alternativene. Begge programmene kan bruke SQL Connect-setningen til å oppgi hvilken database de vil bruke i SQL-setningene som følger. Hvis det ikke finnes noen TP-overvåker som forteller DB2 at den skal koordinere transaksjonen (ved at DB2 mottar xa_open-kallene fra TP-overvåkeren for å opprette en databasetilkobling), blir DB2-programvaren brukt til å koordinere transaksjonen.
Når du bruker flerstedsoppdatering ved hjelp TP-overvåkeren, må applikasjonen be om iverksetting eller tilbakestilling ved hjelp av APIen for TP-overvåkeren, for eksempel CICS SYNCPOINT, Encina Abort(), MTS SetAbort().
Når du bruker flerstedsoppdatering ved hjelp av SQL, må du bruke de vanlige SQL COMMIT og ROLLBACK.
Flerstedsoppdatering ved hjelp av TP-overvåkeren kan koordinere en transaksjon som bruker både DB2- og ikke-DB2-ressursstyrere, for eksempel Oracle, Informix eller SQLServer. SQL-flerstedsoppdatering brukes bare sammen med DB2-tjenere.
For at en transaksjon som omfatter flerstedsoppdatering, skal fungere, må hver enkelt av databasene som er med i en distribuert transaksjon, ha støtte for distribuert arbeidsenhet. Disse DB2-tjenerne har støtte for distribuert arbeidsenhet (DUOW), som gjør at de kan delta i distribuerte transaksjoner:
En distribuert transaksjon kan oppdatere en hvilken som helst blanding av databasetjenere. Applikasjonen kan for eksempel oppdatere flere tabeller i DB2 Universal Database i Windows NT eller Windows 2000, en DB2 for OS/390-database og en DB2/400-database i en enkelt transaksjon.