X / Öppna XA - X/Open XA
I databehandling är X / Open XA- standarden (förkortning för "eXtended Architecture") en specifikation som släpptes 1991 av X / Open (som senare slogs samman med The Open Group ) för distribuerad transaktionsbehandling (DTP).
Målet med XA är att garantera atomicitet i "globala transaktioner " som utförs över heterogena komponenter. En transaktion är en arbetsenhet som att överföra pengar från en person till en annan. Distribuerade transaktioner uppdatera flera datalager (t.ex. databaser, applikationsservrar , meddelandeköer, transaktions cachar, etc.) för att garantera integritet, använder XA en tvåfas commit (2PC) för att säkerställa att alla en transaktionens ändringar antingen ta effekt ( begå ) eller inte ( rulla tillbaka ), dvs atomiskt .
Specifikt beskriver XA gränssnittet mellan en global transaktionshanterare och en specifik applikation. Ett program som vill använda XA engagerar en XA-transaktionshanterare som använder ett bibliotek eller en separat tjänst. Transaktionshanteraren spårar deltagarna i transaktionen (dvs. de olika datalagrarna som applikationen skriver till) och arbetar med dem för att genomföra tvåfasförpliktelsen. Med andra ord är XA-transaktionshanteraren separat från en applikations interaktioner med servrar. XA upprätthåller en logg över sina beslut att begå eller rulla tillbaka, som den kan använda för att återställa vid systemavbrott.
Många programvaruleverantörer stöder XA (vilket innebär att programvaran kan delta i XA-transaktioner), inklusive en mängd relationsdatabaser och meddelandemäklare.
Eftersom XA använder tvåfasförpliktelse gäller fördelarna och nackdelarna med det protokollet i allmänhet för XA. Den största fördelen är att XA (med 2PC) tillåter en atomtransaktion över flera heterogena tekniker (t.ex. en enda transaktion kan omfatta flera databaser från olika leverantörer samt en e-postserver och en meddelandemäklare), medan traditionella databastransaktioner är begränsade till en enda databas.
Den största nackdelen är att 2PC är ett blockeringsprotokoll: de andra servrarna måste vänta på att transaktionshanteraren fattar ett beslut om huruvida de ska begå eller avbryta varje transaktion. Om transaktionshanteraren går offline medan transaktionerna väntar på sitt slutliga beslut kommer de att fastna och hålla databaslåset tills transaktionshanteraren kommer online igen och meddelar sitt beslut. Denna utökade låsning kan vara störande för andra applikationer som använder samma databaser.
Dessutom, om transaktionshanteraren kraschar och dess beslutsbeslut inte kan återställas (t.ex. på grund av ett fel i hur besluten loggades eller på grund av dataskada på servern) kan manuell ingripa vara nödvändig. Många XA-implementeringar ger en "flyktlucka" för transaktioner som oberoende avgör om de ska begå eller avbryta (utan att vänta på att höra från transaktionshanteraren), men detta riskerar att bryta mot atomicitetsgarantin och är därför reserverat för nödsituationer.
XA-specifikationen beskriver vad en resurshanterare måste göra för att stödja transaktionsåtkomst. Resurschefer som följer denna specifikation sägs vara XA-kompatibla .
XA-specifikationen baserades på ett gränssnitt som användes i Tuxedo- systemet som utvecklades på 1980-talet, men som antagits av flera system sedan dess.
- Distribuerad transaktionsbehandling: XA-specifikationen (se även sidan metadata )