2012-03-04 16 views

Odpowiedz

110

JTA to ogólny interfejs API do zarządzania transakcjami w Javie. Pozwala na uruchamianie, zatwierdzanie i wycofywanie transakcji w sposób neutralny dla zasobów. Status transakcji jest zwykle przechowywany w protokole TLS (Thread Local Storage) i może być propagowany do innych metod w stosie wywołań bez potrzeby podawania jakiegoś jawnego obiektu kontekstowego. Zasoby transakcyjne mogą dołączyć do trwającej transakcji. Jeśli w takiej transakcji uczestniczy więcej niż jeden zasób, przynajmniej jeden z nich musi być tak zwanym zasobem XA.

A resource local transaction to transakcja, którą masz z określonym pojedynczym zasobem przy użyciu jego własnego interfejsu API. Taka transakcja zazwyczaj nie rozprzestrzenia się na inne metody w stosie wywołań i wymagane jest przekazanie jakiegoś jawnego obiektu kontekstowego. W większości transakcji lokalnych zasobów nie można mieć wielu zasobów uczestniczących w tej samej transakcji.

Można użyć lokalnej transakcji zasobów, na przykład niskiego poziomu kodu JDBC w Java SE. Tutaj obiekt kontekstu jest wyrażany przez instancję java.sql.Connection. Innymi przykładami lokalnych transakcji na temat zasobów są programiści tworzący aplikacje korporacyjne około 2002 roku. Ponieważ menedżerowie transakcji (używani przez JTA) byli kosztowni, zamknięci i skomplikowani w konfigurowaniu w tym okresie, ludzie poszli z tańszymi i łatwiejszymi do uzyskania lokalnymi wariantami zasobów.

Można użyć transakcji JTA zasadniczo w każdym innym scenariuszu. Bardzo proste, małe, darmowe serwery open-source, takie jak TomEE (25 MB) lub GlassFish (35 MB), mają obsługę JTA od razu po wyjęciu z pudełka. Nie ma nic do skonfigurowania i po prostu działają.

Wreszcie, technologie takie jak EJB i Spring sprawiają, że nawet JTA jest łatwiejszy w użyciu, oferując declarative transactions. W większości przypadków zaleca się ich stosowanie, ponieważ są one łatwiejsze, czystsze i mniej podatne na błędy. Zarówno EJB, jak i Spring mogą używać JTA pod kołdrą.

+3

+1 za wyjaśnienie historii i rozwoju zastosowań JTA (EJB, Spring itp.). – Marco

1

Java Transaction API (JTA) to jeden z interfejsów Java Enterprise Edition (Java EE) umożliwiających wykonywanie transakcji rozproszonych w wielu zasobach XA w środowisku Java.

-1

aplikacji J2EE zawiera suppoart fot DT przez 2 specyfikacji
JTA ---> implementację Javy transakcja API.highe poziomie i jest zawsze włączona
WST ---> Java Transaction Service.

1

Typ transakcji powinien mieć wartość "RESOURCE_LOCAL" dla aplikacji Java SE i "JTA" dla aplikacji Java EE. "RESOURCE_LOCAL" może działać poprawnie w przypadku niektórych aplikacji internetowych wdrożonych na serwerze Tomcat, ale może powodować problemy podczas uruchamiania aplikacji w środowisku Glassfish.

Jeśli pracujesz na transakcjach rozproszonych, musisz użyć "JTA" jako swojego menedżera transakcji.

Powiązane problemy