A kétfázisos véglegesítési (XA) tranzakciók a Liberty összeépítési csomagokban Cloud Foundry környezetek esetén le vannak tiltva. A Liberty tranzakciókezelő alapértelmezésben a helyi fájlrendszerre írja ki a tranzakciós naplófájlt. Mivel a helyi fájlrendszer felhőkörnyezetekben átmeneti, a tranzakciós naplófájl az alkalmazás vagy a Java látszólagos gép összeomlás azután nem érhető el. ár a tranzakciókezelőt be lehet úgy állítani, hogy adatbázis szolgáltatást használjon a tranzakciós naplók tárolásához, a felhőkörnyezetek automatikusan az alkalmazás teljesen új példányát hozzák létre összeomlás után. Ennek eredményeként a tranzakciókezelő nem tudja beazonosítani, hogy melyik naplót kell a meghibásodott példány tranzakcióinak helyreállításához használni.
A kétfázisos véglegesítési tranzakciók az EJB komponensek vagy ajavax.transaction.UserTransaction osztály alkalmazás általi használatával alkalmazhatók. A Cloud Foundry környezetben történő sikeres futtatás érdekében ellenőrizze, hogy az alkalmazás igényel-e XA tranzakciókat.
Az Enterprise JavaBeans (EJB) komponensek alapértelmezésben tároló által
felügyeltek és rendelkeznek Required tranzakciós attribútummal,
ami azt jelenti, hogy JTA tranzakciókat használnak. Az egyetlen erőforrásra
kiterjedő JTA tranzakciók teljes mértékben támogatottak. A több erőforrásra kiterjedő JTA tranzakciók kétfázisos véglegesítést igényelnek, ami nem támogatott Cloud Foundry környezetekben.
A Java kódban a következő kifejezett annotációk JTA tranzakciók használatát jelzik:
javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.MANDATORY)javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRED)javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRES_NEW)javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.SUPPORTS)javax.ejb.TransactionManagement(javax.ejb.TransactionManagementType.CONTAINER)Az ejb-jar.xml fájlban a következő explicit elemek jelzik a JTA
tranzakciók használatát:
<trans-attribute>Mandatory|Required|RequiresNew|Supports</trans-attribute><transaction-type>Container</transaction-type>Megjegyzés: Ha alkalmazása nem használja a
javax.transaction.UserTransaction osztályt, és alkalmazásának
összes EJB komponense komponens által felügyelt, vagy tároló által felügyelt
"Never" vagy "NotSupported" tranzakciós attribútumokkal, akkor alkalmazása nem
használ XA tranzakciókat és ennek a szabálynak a jelzése figyelmen kívül
hagyható.
A következő explicit annotációk és elemek jelzik, hogy az EJB komponens nem használ XA tranzakciókat:
javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.NEVER)javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.NOT_SUPPORTED)javax.ejb.TransactionManagement(javax.ejb.TransactionManagementType.BEAN)<trans-attribute>Never|NotSupported</trans-attribute><transaction-type>Bean</transaction-type>