2014-11-27 24 views
5

JSR 907 JTA 1.2 definiuje "Global Transaction" termin:Co to jest transakcja globalna?

Sposób UserTransaction.begin rozpoczyna globalnej transakcji i kojarzy transakcji z wątku wywołującego.

Co to oznacza? Czy to najbardziej zewnętrzna transakcja, czy co?

Odpowiedz

4

Zasadniczo różnica między transakcją lokalną a transakcją globalną zależy od zasobów. Transakcja globalna obejmuje wiele zasobów. Transakcja lokalna jest ograniczona do jednego zasobu/źródła danych.

E.g.

W transakcji globalnej napiszesz do DB i wyślesz wiadomość przez kolejkę.

To jest ładnie wyjaśnione tutaj: http://integrationspot.blogspot.co.uk/2011/03/jta-transactions-local-and-global.html

globalnych transakcji (XA)

Kiedy udało źródło danych jest skonfigurowany dla transakcji globalnych, to zostaje przywrócone połączenia, które mogą uczestniczyć w transakcjach globalnych . Transakcja globalna (nazywana również transakcją rozproszoną) zawiera więcej niż jeden zasób w transakcji.

Globalne transakcje umożliwiają pracę z wieloma zasobami transakcyjnymi (zazwyczaj relacyjne bazy danych i kolejki wiadomości ).

+0

Integeresting, thanks. Chcę tylko wyjaśnić, czy JTA jest implementacją Open/XA? –

+0

Open/XA to architektura definiująca interakcje transakcji globalnych i lokalnych. JTA jest wzorowany na tej architekturze. –