A támogatás használatával J2EE alkalmazás építhető össze több módosítás egy tranzakcióba vagy egyetlen munkaegységbe csoportosításához, így egy tranzakción belül az összes módosítás teljesen befejezett vagy teljesen visszagörgetett lesz. Ezzel lehetővé váli az alkalmazás futtatása J2EE elvárásnak megfelelő alkalmazáskiszolgálón (például WebSphere Application Server kiszolgálón), hogy az IMS tranzakciókat és adatokat összehangoltan érje el. A globális tranzakciókezelés biztosítja az IMS adatok integritását.
A védett erőforrások módosításakor az az elvárás, hogy a módosítások helyesen valósuljanak meg. Például egy bank ügyfeleként pénzt kíván a takarékbetét-számlájáról a folyószámlájára utalni. Biztos akar lenni abban, hogy a pénze a takarékbetét-számlájáról levonással egyidejűleg jóváírásra kerül a folyószámláján. Nem szeretné, hogy ez a tranzakció csak részlegesen fejeződjön be a takarékbetét-számlájáról a pénz levonásával, de a folyószámláján annak jóváírása nélkül.
Egy másik példa szerint jegyet kell váltania San Francisco-ból Párizsba, de nincs közvetlen járat. Nem hajthatja végre az utazást Párizsba, ha nem sikerül jegyet foglal San Francisco-ból Chicago-ba és egy másikat Chicago-ból Párizsba. Ez azt jelenti, hogy "visszagörgeti" a döntését a párizsi utazásról, mert nem hasznos az utazásnak csak egy részére lefoglalt jeggyel rendelkezni.
Mindkét példában több kisebb tranzakció szükséges egy átfogó tranzakció befejezéséhez. Ha probléma merül fel egy kisebb tranzakcióval, akkor nem akarja a teljes tranzakciót véglegesíteni (például pénzt átutalni vagy Párizsba utazni). Ehelyett vissza kívánja görgetni a tranzakció összes lépését, hogy egyik kisebb tranzakció sem legyen véglegesítve. A pénze átutalásának vagy a párizsi utazásnak a sikeres megvalósításához a kisebb tranzakciókat együtt szeretné kezelni és összehangolni az átfogó tranzakció végrehajtása érdekében.
Az összehangolt tranzakciófeldolgozás biztosításához a J2EE platform (amely egy J2EE alkalmazáskiszolgálót, J2EE alkalmazásösszetevőket és egy J2EE kapcsolatfelépítési erőforrás-illesztőt tartalmaz) osztott tranzakciófeldolgozási környezetet biztosít, ahol a tranzakciók transzparensen kezeltek és az erőforrások több platform között összehangoltan kerülnek frissítésre és helyreállításra.
A J2EE elvárásnak megfelelő kiszolgálók (például a WebSphere Application Server) külső koordinátorként is ismert Java tranzakciókezelőt használnak az alkalmazásösszetevőkkel (például Java kiszolgáló kisalkalmazásokkal vagy vállalati Java komponensekkel) és az erőforráskezelőkkel (például IMS vagy DB2 programmal) az erőforrás-illesztőkön (például az IMS TM erőforrás-illesztőn) keresztül megvalósuló kommunikációra egy tranzakció összehangolása érdekében.
Ha egy tranzakciót tranzakciókezelő koordinál, akkor az adott tranzakció globális tranzakciónak számít. Ha egy tranzakciókezelő egy tranzakciót több erőforráskezelővel koordinál, akkor a külső koordinátor kétfázisú véglegesítési protokollt használ.
Az előző banki példa szerint pénzt kíván a takarékbetét-számlájáról a folyószámlájára utalni. Ha a takarékbetét-számla információk a folyószámla információktól különállók (például a takarékbetét-számla információk IMS a folyószámla információk pedig DB2 erőforráskezelőn helyezkednek el), akkor a tranzakciókezelő a (WebSphere Application Server) alkalmazáskiszolgálón kétfázisú véglegesítési feldolgozás használatával segíti az IMS és DB2 közötti módosítások összehangolását. A tranzakciókezelő általában az IMS erőforráskezelővel dolgozik az IMS módosítások összehangolása érdekében.
Az IMS TM erőforrás-illesztőt úgy tervezték, hogy együttműködjön a Java tranzakciókezelővel a J2EE platformon, a z/OS Resource Recovery Services (RRS) szolgáltatásával és az IMS Connect szolgáltatással, hogy az IMS és egyéb védett erőforrások módosításai konzisztensek legyenek.
Az IMS bevonásával megvalósuló kétfázisú véglegesítési feldolgozásban részvételhez az IMS TM erőforrás-illesztő az IMS OTMA szinkronizálási szintű szinkronpont protokollt használja. Amikor a módosításokat távoli alkalmazás kéri, akkor a globális tranzakcióban és kétfázisú véglegesítési feldolgozásban részvételhez az IMS RRS szolgáltatást használ z/OS platformon.
Az RRS az IMS szempontjából "külső koordinátorként" vagy szinkronpont-kezelőként viselkedik az erőforrások frissítésének és helyreállításának összehangolásához. Az IMS TM erőforrás-illesztő és az IMS Connect együttműködik az alkalmazáskiszolgálón futó Java tranzakciókezelővel és a z/OS RRS szolgáltatásával, hogy lehetővé tegye a J2EE platformon futó globális tranzakciók számára a részvételt a hoszton futó IMS segítségével megvalósuló összehangolt frissítésben.
Egy J2EE alkalmazásnak egy globális tranzakcióban részvételre beállítása során ki kell választania a két rendelkezésre álló kommunikációs protokoll közül az egyiket az IMS Connector for Java és az IMS Connect közötti használatra. Az IMS Connector for Java és az IMS Connect által támogatott két kommunikációs protokoll: TCP/IP és Helyi beállítás.
Globális tranzakció hatókörben a J2EE alkalmazásösszetevő az IMS Connect felé TCP/IP kapcsolat létesítésével éri el az IMS tranzakciót. Ennek alapjaként az IMS TM erőforrás-illesztő az X/Open (XA) protokoll segítségével működik együtt a Java tranzakciókezelővel a globális tranzakció és kétfázisú véglegesítési feldolgozás kezeléséhez. Az XA protokoll felületeket és interakciókat határoz meg, leírva a Java tranzakciókezelő és az erőforráskezelők együttműködését osztott tranzakciófeldolgozási környezetben. Az IMS TM erőforrás-illesztő és az IMS Connect az XA protokollt használja; együttműködik az IMS és Resource Recovery Services (RRS) szolgáltatással z/OS rendszeren a módosítások konzisztens végrehajtása érdekében.
Megszorítások: Kötelező, hogy az RRS ugyanazon az MVS rendszeren fusson, mint az IMS Connect.
IMS Connect terméken az RRS beállításáról tanulmányozza a következőt: IMS Connect útmutató és kézikönyv (SC27-0946). A globális tranzakció és kétfázisú véglegesítési feldolgozás TCP/IP kommunikációs protokolljáról lásd: Platform megfontolások és kommunikációs protokoll szempontok és Kétfázisú véglegesítés környezeti szempontok.
Ha a J2EE alkalmazásösszetevő WebSphere Application Server for z/OS rendszeren fut, akkor Helyi beállítás használatával elküldheti az IMS tranzakció üzeneteket és részt vehet a globális tranzakció-feldolgozásban. Ezt a tranzakciófeldolgozást Resource Recovery Services (RRS) koordinálja z/OS és WebSphere Application Server for z/OS rendszeren. Az IMS Connector for Java RRS elvárásnak megfelelő; speciálisan RRS együttműködéshez tervezett, hogy a Java tranzakciókezelő a WebSphere rendszerben és az IMS, mint az erőforráskezelő együtt tudjon működni a több védett erőforrás konzisztens módosítása érdekében. Az XA protokollt az IMS TM erőforrás-illesztő nem használja globális tranzakció Helyi beállítású futtatása során.
A globális tranzakció és kétfázisú véglegesítési feldolgozás Helyi beállítás kommunikációs protokolljáról lásd: Platform megfontolások és kommunikációs protokoll szempontok, Kétfázisú véglegesítés előfeltételei és Kétfázisú véglegesítési környezet szempontok.
Helyi tranzakció
A J2EE Connection Architecture a javax.resource.cci.LocalTransaction felületen inkább erőforráskezelőre, mint tranzakciókezelőre engedi a helyi tranzakció koordinációját. Ugyanakkor az IMS TM erőforrás-illesztő csak tranzakciókezelővel támogatja a tranzakció koordinációt. Ily módon az IMS Connector for Java nem támogatja a javax.resource.cci.LocalTransaction felületet. Az IMSConnection.getLocalTransaction() metódus hívásakor egy NotSupportedException kivételt kap vissza. Az IMS TM erőforrás-illesztővel megvalósuló tranzakciótámogatás használatához vagy a JTA tranzakció felületet kell használnia, vagy az alkalmazás telepítési leírójában be kell állítania egy megfelelő tranzakció attribútumot. További információkért tanulmányozza a következőt: Globális tranzakciók támogatásának használata az alkalmazásokban.
Egyfázisú véglegesítési feldolgozás
Az IMS TM erőforrás-illesztő egyfázisú véglegesítés optimalizálást támogat a tranzakciókezelővel. Ennek eredményeként ha egy tranzakció hatókörén belül minden módosítás ugyanahhoz az IMS erőforráshoz tartozik, akkor a tranzakciókezelő egyfázisú véglegesítés optimalizálást hajthat végre. Ennek módja a következő: a tranzakciókezelő a módosítások véglegesítéséhez a kettes fázisú véglegesítési kérést közvetlenül az erőforráskezelőnek küldi anélkül, hogy az egyes fázis előkészítési kérése elküldésre kerülne.
Nem globális tranzakciófeldolgozás
Ha az alkalmazásban nem globális tranzakciófeldolgozás használt (például amikor a tranzakció attribútumának beállítása TX_NOTSUPPORTED), akkor az összes nem globális tranzakciófeldolgozás "Szinkronizálás visszatéréskor" lehetőséget használ (OTMA SyncLevel=None). Mire az IMS tranzakció véglegesítésre kerül, a kimenet már visszaér az ügyfélhez.
Párbeszédes tranzakció-feldolgozás globális tranzakció hatókörben
Az IMS párbeszédprogramot használ a feldolgozás felosztásához összekapcsolt ügyfél-program-ügyfél interakciók (vagy másnéven iterációk) sorozatára. Minden egyes iteráció egyfajta IMS párbeszédes tranzakció típus. A párbeszédes feldolgozás akkor használt, amikor egy tranzakció több részt tartalmaz. A nagy tranzakciót alkotó összes rész külön kerül véglegesítésre vagy visszagörgetésre.
A globális tranzakció támogatásról további információk az IMS TM erőforrás-illesztő weboldalán találhatók a www.ibm.com/ims címen a Támogatás oldal Tippek és trükkök fejezetében.