Transakcje z zatwierdzaniem dwufazowym

Transakcje zatwierdzania dwufazowego (XA) nie są włączone w produkcie Liberty na platformach w chmurze. Domyślnie menedżer transakcji Liberty zapisuje plik dziennika transakcji w lokalnym systemie plików. Ponieważ lokalny system plików jest efemeryczny na platformach w chmurze, plik dziennika transakcji nie jest dostępny po awarii aplikacji lub wirtualnej maszyny języka Java. Mimo że menedżer transakcji może być skonfigurowany do używania usługi bazy danych w celu przechowywania dzienników transakcji, platformy w chmurze automatycznie tworzą całkowicie nową instancję aplikacji po awarii. W wyniku tego menedżer transakcji nie może zidentyfikować, który konkretny dziennik ma być używany do odtwarzania transakcji instancji zakończonej niepowodzeniem.

Domyślnie komponenty EJB (Enterprise JavaBeans) są zarządzane przez kontener i mają atrybut transakcji Required, co oznacza, że używają transakcji JTA. Transakcje JTA obejmujące pojedynczy zasób są w pełni obsługiwane. Transakcje JTA, które obejmują wiele zasobów, wymagają zatwierdzania dwufazowego, które nie jest obsługiwane. Ta reguła powoduje oznaczenie flagą plików ejb-jar.xml i kodu Java, który zawiera odwołania do pakietu javax.ejb. Ta reguła powoduje również oznaczenie flagą kodu Java, który odwołuje się do klasy javax.transaction.UserTransaction. Należy sprawdzić, czy aplikacja używa transakcji XA, i usunąć transakcje XA, jeśli są obecne.

W kodzie Java następujące jawne adnotacje wskazują na użycie transakcji JTA:

W pliku ejb-jar.xml następujące jawne elementy wskazują na użycie transakcji JTA:

Uwaga: Jeśli aplikacja nie korzysta z klasy javax.transaction.UserTransaction i wszystkie komponenty EJB Beans aplikacji są zarządzane przez komponent bean lub są zarządzane przez kontener z atrybutami transakcji "Never" lub "NotSupported", to aplikacja nie korzysta z transakcji XA, a oznaczanie flagą tej reguły może być ignorowane.

Następujące jawne adnotacje lub elementy wskazują, że komponent bean EJB nie używa transakcji XA: