Update op meerdere locaties, ook wel gedistribueerde werkeenheid (DUOW) en COMMIT in twee fasen genoemd, is een functie waarmee gegevens in meerdere databaseservers op afstand kunnen worden bijgewerkt door toepassingen zonder dat de gegevensintegriteit in gevaar komt. Stel dat u een banktransactie wilt uitvoeren waarbij geld van de ene rekening wordt overgeboekt naar een andere rekening op een andere databaseserver.
Bij deze transactie is het essentieel dat een debetbewerking op de ene rekening alleen kan worden uitgevoerd als er gelijktijdig ook een creditbewerking op de andere rekening wordt uitgevoerd. Er is sprake van een update op meerdere locaties wanneer de gegevens van deze rekeningen worden beheerd door twee verschillende databaseservers.
DB2-programma's bieden uitgebreide ondersteuning voor updates op meerdere locaties. Ondersteuning is beschikbaar voor toepassingen die zijn ontwikkeld met standaard-SQL en voor toepassingen die gebruikmaken van TP-monitors (Transaction Processor) met de X/Open XA-interfacespecificatie. Voorbeelden van dergelijke TP-monitors zijn IBM TxSeries (CICS en Encina), IBM Message en Queuing Series, IBM Component Broker Series, IBM San Francisco Project, Microsoft Transaction Server (MTS), BEA Tuxedo, enzovoort. De installatievereisten verschillen afhankelijk van het feit of voor updates op meerdere locaties de ingebouwde SQL-instructies of de TP-monitor wordt gebruikt.
Beide programma's voor updates op meerdere locaties (SQL en TP-monitor) moeten worden geprecompileerd met de opties CONNECT 2 SYNCPOINT TWOPHASE. Beide programma's kunnen gebruikmaken van de SQL-instructie CONNECT om aan te geven welke database moet worden gebruikt voor de SQL-instructies die erop volgen. Als er geen TP-monitor is waarmee aan DB2 wordt doorgegeven dat de transactie wordt gecoördineerd (zoals wordt aangegeven door DB2 bij ontvangst van de aanvraag xa_open van de TP-monitor voor het tot stand brengen van een databaseverbinding), wordt de DB2-software gebruikt om de transactie te coördineren.
Als voor de update op meerdere locaties een TP-monitor wordt gebruikt, moet door de toepassing een COMMIT of ROLLBACK worden aangevraagd met behulp van de API van de TP-monitor, bijvoorbeeld CICS SYNCPOINT, Encina Abort() of MTS SetAbort().
Als er gebruik wordt gemaakt van de ingebouwde SQL-instructies voor updates op meerdere locaties, kunt u gewoon de standaardopdrachten SQL COMMIT en ROLLBACK gebruiken.
Bij een update op meerdere locaties met de TP-monitor kunnen transacties worden gecoördineerd die toegang hebben tot DB2- en niet-DB2-programma's voor resourcebeheer, zoals Oracle, Informix, SQLServer, enzovoort. Updates op meerdere locaties met ingebouwde SQL-instructies zijn alleen mogelijk op DB2-servers.
U kunt alleen een update op meerdere locaties uitvoeren als alle databases die deelnemen aan een gedistribueerde transactie DUOW (gedistribueerde werkeenheid) ondersteunen. Op dit moment bieden de volgende DB2-servers DUOW-ondersteuning en kunnen deze servers worden gebruikt bij gedistribueerde transacties:
Bij een gedistribueerde transactie kan elke combinatie van ondersteunde databaseservers worden bijgewerkt. Zo kunt u met een toepassing in één transactie verschillende tabellen bijwerken in DB2 Universal Database onder Windows NT of Windows 2000, in een DB2 for OS/390-database en in een DB2/400-database.
Voor host- en AS/400-databaseservers is DB2 Connect vereist om te kunnen deelnemen aan een gedistribueerde transactie die afkomstig is van PC-, UNIX- en webtoepassingen. Voor veel scenario's voor updates op meerdere locaties waarbij host- en AS/400-databaseservers zijn betrokken, moet bovendien de component Syncpointbeheer (SPM) worden geconfigureerd. Als er een DB2-subsysteem wordt gemaakt, wordt DB2 SPM automatisch geconfigureerd met standaardinstellingen.
Of SPM nodig is, hangt af van het gekozen protocol (SNA of TCP/IP) en het
gebruik van een TP-monitor. In de volgende tabel vindt u een overzicht
van de scenario's waarvoor het gebruik van SPM is vereist. Zoals u
in de tabel kunt zien, is voor toegang tot hosts of AS/400-systemen vanaf
Intel- of UNIX-computers altijd DB2 Connect nodig. Daarnaast is voor
updates op meerdere locaties de component SPM van DB2 Connect vereist wanneer
toegang plaatsvindt via SNA of met gebruik van een TP-monitor.
Tabel 1. Host- en AS/400-scenario's voor updates op meerdere locaties waarvoor SPM vereist is
Wordt TP-monitor gebruikt? | Protocol | Is SPM vereist? | Vereist programma (maak een keuze) | Ondersteunde host- en AS/400-databases |
---|---|---|---|---|
Ja | TCP/IP | Ja |
|
|
Ja | SNA | Ja |
|
|
Nee | TCP/IP | Nee |
|
|
Nee | SNA | Ja |
|
|
Opmerking: | Bij een gedistribueerde transactie kan elke combinatie van ondersteunde
databaseservers worden bijgewerkt. Zo kunt u met een toepassing in één
transactie verschillende tabellen bijwerken in DB2 UDB onder Windows NT, in
een DB2 for OS/390-database en in een DB2/400-database.
Raadpleeg de Administration Guide voor meer informatie over COMMIT in twee fasen en voor aanwijzingen over het instellen van diverse veelgebruikte TP-monitors. U kunt ook de technische bibliotheek van DB2 (DB2 Product and Service Technical Library) op het World Wide Web raadplegen:
|
DRDA definieert weliswaar de communicatieprotocollen voor databases, maar niet de programmeringsinterfaces of API's die moeten worden gebruikt door toepassingsprogrammeurs. In het algemeen kan DRDA door een toepassingsprogramma worden gebruikt voor alle aanvragen die kunnen worden uitgevoerd door een DRDA-doelserver. Alle op dit moment beschikbare DRDA-servers kunnen SQL-opdrachten uitvoeren die door een toepassingsprogramma zijn doorgezonden via DB2 Connect.
IBM biedt hulpprogramma's waarmee toepassingsprogrammeurs SQL-aanvragen voor Windows, OS/2 en verschillende UNIX-platforms kunnen genereren. Deze hulpprogramma's zijn opgenomen in de DB2 Application Development Client. De DB2 Application Development Client ondersteunt diverse typen API's: ingesloten SQL, JDBC, SQLJ en de DB2 Call Level Interface (DB2 CLI). Deze API's kunnen door programmeurs worden gebruikt om toepassingen in verschillende programmeertalen te ontwikkelen. Zie de Application Building Guide voor meer informatie over deze API's.
Toepassingsontwikkelaars kunnen ook gebruikmaken van API's die door andere bedrijven worden geleverd. Microsoft ODBC en ADO worden bijvoorbeeld door programmeurs van Windows-toepassingen gebruikt om databasetoepassingen te ontwikkelen. DB2 Connect biedt een ODBC-stuurprogramma en een OLE DB-voorziening waarmee toepassingen worden ondersteund die zijn ontwikkeld met de ODBC- en ADO-API's. IBM biedt geen hulpprogramma's voor de ontwikkeling van ODBC-toepassingen. Deze hulpprogramma's worden geleverd door Microsoft.
U kunt updates op meerdere locaties uitvoeren via het Besturingscentrum. De procedure is erg eenvoudig en wordt hieronder beschreven. Raadpleeg het online Connectivity Supplement voor meer informatie over het configuratieproces voor updates op meerdere locaties. Hierbij komt ook handmatige configuratie van het systeem aan de orde.
Klik in het Besturingscentrum op het teken [+] om de boomstructuur uit te breiden. Selecteer met de rechtermuisknop het subsysteem dat u wilt configureren. Er wordt een voorgrondmenu geopend. Selecteer Update op meerdere locaties --> Configureren.
De interface van de wizard ziet eruit als een instellingenblok. Op elke pagina van dit instellingenblok wordt u gevraagd bepaalde gegevens over de configuratie in te voeren. Hieronder worden de pagina's beschreven in de volgorde waarin ze in de wizard voorkomen.
Stap 1. | Geef een TP-monitor (Transaction Processor) op. In dit veld worden de standaardwaarden afgebeeld voor de TP-monitor die u hebt ingeschakeld. Als u geen TP-monitor wilt gebruiken, selecteert u Geen TP-monitors gebruiken. |
Stap 2. | Geef de communicatieprotocollen op die u wilt gebruiken. |
Stap 3. | Geef een database voor transactiebeheer op. De standaardwaarde op deze pagina is de eerste database waarmee u verbinding maakt (1ST_CONN). U kunt deze standaardwaarde laten staan of een andere database in de catalogus selecteren. |
Stap 4. | Geef de typen op van de databaseservers die bij de update zijn betrokken en geef aan of uitsluitend TCP/IP wordt gebruikt. |
Stap 5. | Geef de instellingen voor Syncpointbeheer op. Deze pagina wordt alleen afgebeeld als uit de instellingen op de vorige pagina blijkt dat u DB2 Syncpointbeheer nodig hebt bij een scenario voor een update op meerdere locaties.
|
Stap 1. | Selecteer het subsysteem met de rechtermuisknop en kies Update op meerdere locaties --> Testen uit het voorgrondmenu. Het venster Update op meerdere locaties testen wordt geopend. |
Stap 2. | Selecteer de databases die u wilt testen in de keuzelijst Beschikbare databases. Met de pijlknoppen in het midden kunt u selecties verplaatsen naar en verwijderen uit de keuzelijst Geselecteerde databases. U kunt ook het geselecteerde gebruikers-ID en wachtwoord wijzigen door deze rechtstreeks in de keuzelijst Geselecteerde databases te bewerken. |
Stap 3. | Als u de gewenste databases hebt geselecteerd, klikt u op de knop Testen onder aan het venster. Het venster Testresultaat van update op meerdere locaties wordt geopend. |
Stap 4. | In het venster Testresultaat van update op meerdere locaties wordt aangegeven welke geselecteerde databases de updatetest hebben doorstaan en welke niet. Voor de databases die de test niet hebben doorstaan, worden SQL-codes en foutberichten afgebeeld.
|