Obsługa transakcji globalnych z zatwierdzaniem dwufazowym

Aby chronić i zapewnić integralność newralgicznych zasobów biznesowych, adapter zasobów IMS TM obsługuje zarządzanie transakcjami globalnymi oraz przetwarzanie zatwierdzania dwufazowego.

Wykorzystując tę obsługę można tworzyć aplikacje w technologii J2EE grupujące zmiany w jednej transakcji lub pojedynczej jednostce pracy, tak że wszystkie zmiany w ramach transakcji można albo zastosować w całości, albo wycofać w całości. Umożliwia to uruchamianie aplikacji na serwerach aplikacji zgodnych z technologią J2EE (na przykład WebSphere Application Server), aby w skoordynowany sposób uzyskać dostęp do transakcji i danych systemu IMS. Zarządzanie transakcjami globalnymi zapewnia integralność danych w systemie IMS.

Przykład obsługi transakcji globalnych

Podczas wprowadzania zmian w chronionych zasobach użytkownik oczekuje, że te zmiany zostaną wprowadzone poprawnie. Na przykład użytkownik jako klient banku chce przelać pieniądze z rachunku oszczędnościowego na rachunek bieżący. Przeprowadzając transakcję chce mieć pewność, że odjęcie pieniędzy z rachunku oszczędnościowego spowoduje natychmiastowe ich dodanie do rachunku bieżącego. Nie chce, aby transakcja została przeprowadzona tylko częściowo przez odjęcie pieniędzy z rachunku oszczędnościowego bez dodania ich do rachunku bieżącego.

Inny przykład: użytkownik chce kupić bilet z San Francisco do Paryża, ale bezpośredni przelot jest niedostępny. Dopóki pomyślnie nie zarezerwuje biletu z San Francisco do Chicago i kolejnego z Chicago do Paryża, nie zatwierdzi swojej podróży do Paryża. Oznacza to, że "wycofa" swoją decyzję o podróży do Paryża, ponieważ potwierdzenie rezerwacji tylko na jedną część podróży nie jest dla niego zadowalające.

W obydwu powyższych przykładach do zakończenia całej transakcji wymaganych jest kilka mniejszych. Jeśli wystąpi problem z jedną z tych mniejszych transakcji, użytkownik nie zatwierdzi całej transakcji (przelewu pieniędzy lub wyjazdu do Paryża). Zamiast tego chce wycofać każdy krok transakcji tak, że żadna z mniejszych transakcji nie będzie zatwierdzona. Aby pomyślnie przelać pieniądze lub wyjechać do Paryża, użytkownik chce, aby mniejsze transakcje były razem zarządzane i koordynowane.

Aby zapewnić skoordynowane przetwarzanie transakcji, platforma J2EE (która składa się z serwera aplikacji J2EE, komponentów aplikacji J2EE i adaptera zasobów architektury J2EE Connector Architecture) udostępnia środowisko przetwarzania transakcji rozproszonych, w którym transakcje są zarządzane w sposób przezroczysty, a zasoby aktualizowane i odtwarzane na wielu platformach w skoordynowany sposób.

Proces obsługi transakcji globalnych i zatwierdzania dwufazowego

W celu koordynowania transakcji serwer aplikacji zgodny ze standardem J2EE (taki jak WebSphere Application Server) korzysta z menedżera transakcji Java, nazywanego także koordynatorem zewnętrznym, do komunikowania się z komponentami aplikacji (na przykład serwletami Java lub komponentami Enterprise Java Beans) i menedżerami zasobów (na przykład IMS lub DB2) za pośrednictwem adapterów zasobów (na przykład adaptera zasobów IMS TM).

Transakcja koordynowana przez menedżer transakcji uważana jest za transakcję globalną. Jeśli menedżer transakcji koordynuje transakcję z więcej niż jednym menedżerem zasobów, koordynator zewnętrzny wykorzystuje protokół zatwierdzania dwufazowego.

W poprzednim przykładzie, który dotyczył banku, użytkownik chciał przelać pieniądze z rachunku oszczędnościowego na rachunek bieżący. Jeśli informacje o rachunku oszczędnościowym znajdują się w innym menedżerze zasobów niż informacje o rachunku bieżącym (na przykład informacje o rachunku oszczędnościowym znajdują się w systemie IMS, a informacje o rachunku bieżącym w produkcie DB2), menedżer transakcji serwera aplikacji (WebSphere Application Server) w sposób przezroczysty pomaga aplikacji koordynować zmiany między systemem IMS a produktem DB2, za pomocą przetwarzania zatwierdzania dwufazowego. W szczególności w celu koordynowania zmian w systemie IMS menedżer transakcji współpracuje z adapterem zasobów IMS.

Adapter zasobów IMS TM został zaprojektowany do współpracy z menedżerem transakcji Java na platformie J2EE, z usługą Resource Recovery Services (RRS) systemu z/OS oraz produktem IMS Connect w celu wprowadzania spójnych zmian w systemie IMS oraz innych chronionych zasobach.

Aby uczestniczyć w przetwarzaniu zatwierdzania dwufazowego w systemie IMS, adapter zasobów IMS TM korzysta z protokołu punktu synchronizacji poziomu IMS OTMA Synchronization. Aby uczestniczyć w transakcji globalnej z przetwarzaniem zatwierdzania dwufazowego, gdy zmiany są wprowadzane ze zdalnej aplikacji, system IMS korzysta z usługi RRS w systemie z/OS.

Usługa RRS działa z punktu widzenia systemu IMS jako "koordynator zewnętrzny" lub menedżer punktu synchronizacji, który koordynuje aktualizację i odtwarzanie zasobów. Adapter zasobów IMS TM i produkt IMS Connect współpracują z menedżerem transakcji Java działającym na serwerze aplikacji i z usługą RRS w systemie z/OS, aby umożliwić transakcji globalnej, działającej na platformie J2EE, uczestniczenie w aktualizacji skoordynowanej z działającym na hoście systemem IMS.

Podczas konfigurowania aplikacji J2EE do uczestniczenia w transakcji globalnej należy wybrać jeden z dwóch dostępnych protokołów komunikacyjnych, który będzie stosowany między produktami IMS Connector for Java i IMS Connect. Te dwa protokoły komunikacyjne obsługiwane przez produkty IMS Connector for Java oraz IMS Connect to protokół TCP/IP i protokół Local Option.

Transakcja globalna z protokołem TCP/IP

W zasięgu transakcji globalnej komponent aplikacji J2EE może uzyskać dostęp do transakcji systemu IMS, ustanawiając połączenie TCP/IP z produktem IMS Connect. Bazowy adapter zasobów IMS TM współpracuje z menedżerem transakcji Java przy użyciu protokołu X/Open (XA) w celu zarządzania transakcjami globalnymi i przetwarzaniem zatwierdzania dwufazowego. Protokół XA definiuje zestaw interfejsów oraz interakcji opisujących sposób współpracy menedżera transakcji Java i menedżera zasobów w środowisku przetwarzania transakcji rozproszonych. Adapter zasobów IMS TM wraz z produktem IMS Connect korzysta z protokołu XA i współpracuje z systemem IMS oraz usługą Resource Recovery Services (RRS) w systemie z/OS w celu wprowadzania spójnych zmian.

Ograniczenia: Usługa RRS musi być uruchomiona w tym samym systemie MVS, co produkt IMS Connect.

Informacje na temat konfigurowania usługi RRS dla produktu IMS Connect zawiera podręcznik IMS Connect Guide and Reference (SC27-0946). Więcej informacji na temat protokołu TCP/IP w transakcji globalnej i przetwarzaniu zatwierdzania dwufazowego zawierają sekcje Uwagi dotyczące platform i protokołów komunikacyjnych i Uwagi dotyczące środowiska przetwarzania dwufazowego.

Transakcja globalna z protokołem Local Option

Jeśli komponent aplikacji J2EE działa na serwerze aplikacji WebSphere Application Server for z/OS, komunikaty transakcyjne systemu IMS można wprowadzić za pomocą protokołu Local Option i uczestniczyć w przetwarzaniu transakcji globalnej. To przetwarzanie transakcji jest koordynowane przez usługę Resource Recovery Services (RRS) w systemie z/OS i serwer aplikacji WebSphere Application Server for z/OS. Produkt IMS Connector for Java jest zgodny z usługą RRS i został zaprojektowany specjalnie do pracy z tą usługą, tak aby menedżer transakcji Java w środowisku WebSphere i system IMS (jako menedżer zasobów) mogły współpracować ze sobą w celu wprowadzania spójnych zmian w wielu chronionych zasobach. Protokół XA nie jest wykorzystywany przez adapter zasobów IMS TM w przypadku uruchamiania transakcji globalnych z użyciem protokołu Local Option.

Ograniczenie:
  • Aby można było uruchamiać transakcje globalne z protokołem Local Option, serwer WebSphere Application Server for z/OS oraz produkty IMS Connect i IMS muszą działać w tym samym systemie MVS.
Zalecenie:
  • Protokół Local Option zapewnia optymalną wydajność.
  • Jeśli serwer WebSphere Application Server for z/OS jest uruchomiony w innym systemie MVS niż system IMS i produkt IMS Connect, dla transakcji globalnej musi być używany protokół TCP/IP.

Więcej informacji na temat protokołu Local Option w transakcji globalnej i przetwarzaniu zatwierdzania dwufazowego zawierają sekcje Uwagi na temat platform i protokołów komunikacyjnych, Wymagania wstępne dla zatwierdzania dwufazowego i Uwagi na temat środowiska zatwierdzania dwufazowego.

Informacje dodatkowe o obsłudze transakcji

Transakcja lokalna

Architektura J2EE Connection Architecture definiuje interfejs javax.resource.cci.LocalTransaction, który do lokalnego koordynowania transakcji umożliwia wykorzystanie menedżera zasobów - zamiast menedżera transakcji. Jednak adapter zasobów IMS TM obsługuje jedynie koordynację transakcji za pomocą menedżera transakcji. A zatem produkt IMS Connector for Java nie obsługuje interfejsu javax.resource.cci.LocalTransaction. Po wywołaniu metody IMSConnection.getLocalTransaction() zostanie zwrócony wyjątek NotSupportedException. Aby korzystać z obsługi transakcji za pomocą adaptera zasobów IMS TM, należy użyć interfejsu transakcji JTA lub w deskryptorze wdrażania aplikacji ustawić odpowiedni atrybut transakcji. Więcej informacji na ten temat zawiera sekcja Korzystanie z obsługi transakcji globalnych w aplikacji.

Przetwarzanie zatwierdzania jednofazowego

Adapter zasobów IMS TM obsługuje optymalizację zatwierdzania jednofazowego za pomocą menedżera transakcji. Oznacza to, że jeśli wszystkie zmiany w zasięgu transakcji należą do tego samego zasobu systemu IMS, menedżer transakcji może przeprowadzić optymalizację zatwierdzania jednofazowego, polegającą na wysyłaniu żądania zatwierdzania fazy drugiej bezpośrednio do menedżera zasobów, aby potwierdzić zmiany bez konieczności wysyłania żądania przygotowania fazy pierwszej.

Przetwarzanie transakcji nieglobalnej

Jeśli aplikacja nie wykorzystuje przetwarzania transakcji globalnych (na przykład gdy atrybut transakcji ma wartość TX_NOTSUPPORTED), w procesie przetwarzania transakcji nieglobalnych wykorzystywana jest opcja "Sync-On-Return" (OTMA SyncLevel=None). Przed zatwierdzeniem transakcji IMS dane wyjściowe zwracane są do klienta.

Przetwarzanie transakcji konwersacyjnych w zasięgu transakcji globalnej

System IMS korzysta z programu konwersacyjnego w celu podzielenia przetwarzania na połączone serie interakcji klient-program-klient (zwane także iteracjami). Każda iteracja jest transakcją konwersacyjną IMS. Przetwarzanie konwersacyjne jest wykorzystywane, gdy jedna transakcja składa się z kilku części. Każda część, która stanowi jedną dużą transakcję, jest zatwierdzana lub wycofywana osobno.

Transakcję konwersacyjną można uruchomić w zasięgu transakcji globalnej, jeśli:
  • Każda iteracja jest uruchamiana na tym samym poziomie transakcji. Na przykład jeśli pierwsza iteracja przetwarzana jest w zasięgu transakcji globalnej, również wszystkie następne iteracje w tej transakcji konwersacyjnej systemu IMS także muszą być przetwarzane na poziomie transakcji globalnej. Jeśli druga iteracja zostanie wywołana poza zasięgiem transakcji, protokół IMS OTMA zgłosi błąd.
  • Przed wywołaniem następnej iteracji w konwersacji IMS każda iteracja musi się zakończyć zatwierdzeniem lub wycofaniem. W zasięgu jednej transakcji globalnej nie można grupować wielu iteracji.

Więcej informacji na temat używania obsługi transakcji globalnych znajduje się w części Hints and Tips (Wskazówki i porady) na stronie wsparcia w serwisie WWW adaptera zasobów IMS TM pod adresem www.ibm.com/ims.

Pojęcia pokrewne
Wymagania wstępne dla zatwierdzania dwufazowego
Korzystanie z obsługi transakcji globalnych w aplikacji
Odsyłacze pokrewne
Zagadnienia dotyczące środowiska zatwierdzania dwufazowego

Opinie