Transakce s dvoufázovým potvrzováním

Transakce s dvoufázovým potvrzováním (XA) jsou zakázány v balících sestavení Liberty pro prostředí Cloud Foundry. Standardně správce transakcí Liberty zapíše soubor protokolu transakcí do lokálního systému souborů. Vzhledem k tomu, že lokální systém souborů je přechodný na cloudových platformách, soubor transakčního protokolu není k dispozici po zhroucení aplikace nebo prostředí JVM (Java Virtual Machine). Přestože správce transakcí může být konfigurován tak, aby používal službu databáze k ukládání transakčních protokolů, vytvoří cloudové platformy automaticky po zhroucení zcela novou instanci aplikace. Výsledkem je, že správce transakcí nemůže identifikovat, který konkrétní protokol má být použit k obnovení transakcí nezdařené instance.

Transakce s dvoufázovým potvrzováním mohou být používány v objektech EJB typu bean nebo v použití třídy javax.transaction.UserTransaction aplikace. Chcete-li se úspěšně spustit aplikaci v prostředí Cloud Foundry, ověřte, zda aplikace vyžaduje transakce s dvoufázovým potvrzováním.

Standardně jsou objekty typu Enterprise JavaBeans (EJB) spravovány kontejnerem a mají atribut transakce Required, což znamená, že používají transakce JTA. Transakce JTA, které zahrnují jeden prostředek, jsou plně podporovány. Transakce JTA, které zahrnují více prostředků, vyžadují dvoufázové potvrzování, které není podporováno v prostředí Cloud Foundry.

V kódu Java označují následující explicitní anotace použití transakcí JTA:

V souboru ejb-jar.xml označují následující explicitní prvky použití transakcí JTA:

Poznámka: Pokud vaše aplikace nepoužívá třídu javax.transaction.UserTransaction a všechny objekty EJB bean aplikace jsou spravované objektem typu bean nebo kontejner je spravován s atributy transakce "Never" nebo "NotSupported", pak vaše aplikace nepoužívá transakce XA a označení tohoto pravidla lze ignorovat.

Následující explicitní anotace nebo prvky označují, že objekt typu EJB bean nepoužívá transakce XA: