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. For eksempel 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, 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 av 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.
Verts- og AS/400-databasetjenere krever DB2 Connect for å delta i distribuerte transaksjoner som blir startet fra PC-, UNIX- og web-applikasjoner. I tillegg krever mange av flerstedsoppdateringene som omfatter verts- og AS/400-databasetjenere, at komponenten Synkroniseringspunktstyrer (SPM) blir konfigurert. Når det blir opprettet en DB2-forekomst, blir DB2-synkroniseringspunktstyreren (SPM) automatisk konfigurert med standardinnstillingene.
Valget av protokoll (SNA eller TCP/IP) og bruken av en TP-overvåker avgjør
om det er behov for SPM. Tabellen nedenfor viser en oversikt over
scenariene som krever bruk av SPM. Tabellen viser også at DB2 Connect
er nødvendig for å få tilgang til vertssystemet eller AS/400 fra Intel- eller
UNIX-maskiner. I tillegg er SPM-komponenten i DB2 Connect nødvendig
hvis SNA eller en TP-overvåker blir brukt i flerstedsoppdateringen.
Tabell 1. Flerstedsoppdateringer på vertsmaskiner og AS/400 som krever SPM.
Brukes en TP-overvåker? | Protokoll | Er SPM nødvendig? | Produkt nødvendig (velg ett) | Vertsdatabase og AS/400-database støttet | ||
---|---|---|---|---|---|---|
Ja | TCP/IP | Ja |
|
| ||
Ja | SNA | Ja |
|
| ||
Nei | TCP/IP | Nei |
|
| ||
Nei | SNA | Ja |
|
|
Merk: | En distribuert transaksjon kan oppdatere en hvilken som helst blanding av
databasetjenere. Applikasjonen kan for eksempel oppdatere flere
tabeller i DB2 UDB i Windows NT, en DB2 for OS/390-database og en
DB2/400-database i en enkelt transaksjon.
Hvis du ønsker flere opplysninger om tofaseiverksetting, samt instruksjoner for hvordan du konfigurerer flere populære TP-overvåkere, leser du Administration Guide. Du finner også DB2 Product and Service Technical Library på World Wide Web:
|
Selv om DRDA definerer protokoller for databasekommunikasjon, definerer det ikke hvilke programmeringsgrensesnitt eller APIer applikasjonsprogrammererne skal bruke. Generelt sett kan et applikasjonsprogram bruke DRDA til å sende alle forespørsler som en DRDA-måltjener kan utføre. Alle DRDA-tjenerne som er tilgjengelige i dag, kan utføre SQL-forespørsler som et applikasjonsprogram videresender gjennom DB2 Connect.
IBM gir applikasjonsprogrammerere verktøy for å generere SQL-forespørsler for Windows, OS/2 og flere UNIX-plattformer. Disse verktøyene er en del av DB2 Application Development Client. DB2 Application Development Client støtter flere API-typer, for eksempel innfelt SQL, JDBC, SQLJ og DB2 Call Level Interface (DB2 CLI). Programmererne kan bruke disse APIene til å bygge applikasjoner i en rekke programmeringsspråk. Hvis du ønsker flere opplysninger disse APIene, leser du Application Building Guide.
Applikasjonsutviklere kan også bruke APIer fra andre leverandører. Windows-applikasjonsprogrammerere bruker for eksempel Microsoft ODBC og ADO når de skal utvikle databaseapplikasjoner. DB2 Connect har et ODBC-styreprogram og en OLE DB-formidler som støtter applikasjoner som er utviklet ved hjelp av APIer for ODBC og ADO. IBM har ikke verktøy for å utvikle ODBC-applikasjoner. Disse verktøyene blir levert av Microsoft Corporation.
Du kan bruke kontrollsenteret til å utføre flerstedsoppdateringer. Prosedyren er enkel, og du finner en beskrivelse av den nedenfor. Du finner flere opplysninger om konfigurering av flerstedsoppdatering, for eksempel hvordan du konfigurerer systemet manuelt, i Connectivity Supplement på systemet.
Klikk på tegnet [+] for å utvide treoversikten i Kontrollsenter. Klikk på forekomsten du ønsker å konfigurere, med høyre museknapp. Du får frem objektmenyen. Velg menypunktet Flerstedsoppdatering --> Konfigurer.
Veiviseren er utformet som en notisbok. Du må oppgi konfigureringsopplysninger på hver enkelt side i veiviseren. Sidene blir vist nedenfor i rekkefølgen du ser dem.
Trinn 1. | Oppgi en TP-overvåker. Dette feltet viser standardverdiene for TP-overvåkeren du har aktivert. Hvis du ikke vil bruke en TP-overvåker, velger du valgruten Ikke bruk en TP-overvåker. |
Trinn 2. | Oppgi hvilke kommunikasjonsprotokoller du skal bruke. |
Trinn 3. | Oppgi en transaksjonsstyrerdatabase. Dette skjermbildet viser som standard den første databasen du kobler deg til (1ST_CONN). Du kan bruke denne standardverdien eller velge en annen katalogisert database. |
Trinn 4. | Oppgi typene databasetjenere som er involvert i oppdateringen, og om bare TCP/IP skal brukes. |
Trinn 5. | Oppgi innstillinger for synkroniseringspunktstyreren. Denne siden blir bare vist hvis innstillingene på den forrige siden viser at du må bruke DB2s synkroniseringspunktstyrer i en flerstedsoppdatering.
|
Trinn 1. | Klikk på forekomsten med høyre museknapp og velg menypunktet Flerstedsoppdatering --> Test fra objektmenyen. Vinduet Test flerstedsoppdatering blir åpnet. |
Trinn 2. | Velg databasene du vil teste, blant de tilgjengelige databasene på valglisten Tilgjengelige databaser. Du kan bruke pilknappene i midten for å flytte databaser til og fra valglisten Valgte databaser. Du kan også endre bruker-IDen og passordet du valgte, ved å redigere dem direkte på valglisten Valgte databaser. |
Trinn 3. | Når du er ferdig med å velge databaser, klikker du på OK nederst i vinduet. Vinduet Testresultater for flerstedsoppdatering blir åpnet. |
Trinn 4. | Vinduet Testresultater for flerstedsoppdatering viser hvilke av de valgte databasene som oppdateringstesten var vellykket eller mislykket for. Vinduet viser SQL-koder og feilmeldinger for de som mislyktes.
|