X / Abrir XA - X/Open XA

En informática, el estándar X / Open XA (abreviatura de "Arquitectura extendida") es una especificación lanzada en 1991 por X / Open (que luego se fusionó con The Open Group ) para el procesamiento de transacciones distribuidas (DTP).

Metas

El objetivo de XA es garantizar la atomicidad en las " transacciones globales " que se ejecutan en componentes heterogéneos. Una transacción es una unidad de trabajo, como transferir dinero de una persona a otra. Las transacciones distribuidas actualizan varios almacenes de datos (como bases de datos, servidores de aplicaciones , colas de mensajes, cachés transaccionales, etc.) Para garantizar la integridad, XA utiliza una confirmación de dos fases (2PC) para garantizar que todos los cambios de una transacción surtan efecto ( confirmación ) o no ( retroceder ), es decir, atómicamente .

Arquitectura

Específicamente, XA describe la interfaz entre un administrador de transacciones global y una aplicación específica. Una aplicación que quiere usar XA contrata a un administrador de transacciones XA usando una biblioteca o un servicio separado. El administrador de transacciones rastrea a los participantes en la transacción (es decir, los diversos almacenes de datos en los que escribe la aplicación) y trabaja con ellos para llevar a cabo el compromiso de dos fases. En otras palabras, el administrador de transacciones XA es independiente de las interacciones de una aplicación con los servidores. XA mantiene un registro de sus decisiones de confirmar o revertir, que puede usar para recuperarse en caso de una interrupción del sistema.

Muchos proveedores de software admiten XA (lo que significa que el software puede participar en transacciones XA), incluida una variedad de bases de datos relacionales y agentes de mensajes.

Ventajas y desventajas

Dado que XA utiliza la confirmación en dos fases, las ventajas y desventajas de ese protocolo generalmente se aplican a XA. La principal ventaja es que XA (usando 2PC) permite una transacción atómica a través de múltiples tecnologías heterogéneas (por ejemplo, una sola transacción podría abarcar múltiples bases de datos de diferentes proveedores, así como un servidor de correo electrónico y un intermediario de mensajes), mientras que las transacciones de bases de datos tradicionales se limitan a un base de datos única.

La principal desventaja es que 2PC es un protocolo de bloqueo: los otros servidores deben esperar a que el administrador de transacciones emita una decisión sobre si confirmar o abortar cada transacción. Si el administrador de transacciones se desconecta mientras las transacciones esperan su decisión final, se bloquearán y mantendrán bloqueados sus bases de datos hasta que el administrador de transacciones se conecte nuevamente y emita su decisión. Esta retención prolongada de bloqueos puede ser perjudicial para otras aplicaciones que utilizan las mismas bases de datos.

Además, si el administrador de transacciones falla y su registro de decisiones no se puede recuperar (por ejemplo, debido a un error en la forma en que se registraron las decisiones, o debido a la corrupción de datos en el servidor), puede ser necesaria la intervención manual. Muchas implementaciones de XA proporcionan una "trampilla de escape" para que las transacciones decidan independientemente si se comprometen o anulan (sin esperar a escuchar al administrador de transacciones), pero esto corre el riesgo de violar la garantía de atomicidad y, por lo tanto, está reservado para emergencias.

Especificación

La especificación XA describe lo que debe hacer un administrador de recursos para admitir el acceso transaccional. Se dice que los administradores de recursos que siguen esta especificación cumplen con XA .

La especificación XA se basó en una interfaz utilizada en el sistema Tuxedo desarrollado en la década de 1980, pero adoptado por varios sistemas desde entonces.

Ver también

Referencias

enlaces externos