Red de conocimiento informático - Problemas con los teléfonos móviles - Implementación de Weblogic ibatis 2 Oracle de problemas de gestión de transacciones JTA

Implementación de Weblogic ibatis 2 Oracle de problemas de gestión de transacciones JTA

El principio de las transacciones distribuidas es:

Solo cuando las transacciones de todos los nodos se envían con éxito, se puede enviar la transacción completa

Si la transacción de un nodo no se envía, entonces toda la transacción fallará

p>

Esto puede ocurrir por 2 razones:

(1) Esto puede deberse a que el controlador de base de datos que está utilizando tiene transacciones distribuidas (XA) activado.

Verifique el controlador de la base de datos en la consola de weblogic; es posible que deba cambiarlo para que apunte a un grupo de conexiones que no utilice el controlador XA.

(2) Hay dos formas de implementar transacciones: usando JDBC o usando JTA/JTS. El segundo método se puede lograr obteniendo UserTransaction del contexto ejb:

UserTransaction ut = context.getUserTransaction (

ut.begin(); >// Ejecutar lógica de negocios

ut.commit();

Hay una gran diferencia entre estos dos modos: solo el segundo modo admite transacciones globales.

Para admitir transacciones globales, algunos contenedores pueden tener configuraciones de base de datos especiales (por ejemplo, un contenedor siempre creará una base de datos TX (una base de datos habilitada para JTA) incluso si el grupo de conexiones subyacente utiliza un JDBC que no sea XA. conductor). Probablemente debido a esto, una vez que utiliza una transacción JDBC, falla así.