Pregunta

Estoy escribiendo un adaptador de recursos que no admite la confirmación en dos fases. Sé que hay una técnica de optimización llamada: " Optimización del último recurso " ;.

En JBoss, su clase XAResource debe implementar LastResource para tener la optimización.

Mi pregunta es: cómo se puede hacer esto en WebLogic, WebSpehre, Glassfish, etc ...

¿Fue útil?

Solución

Weblogic: AFAIK (puede ser muy incorrecto) solo los controladores JDBC se pueden usar con LRO, y es una tarea puramente administrativa . Cuando un controlador no admite XA, puede configurarse para ser usado con LRO: " Seleccione esta opción si desea habilitar conexiones JDBC que no sean XA desde la fuente de datos para emular la participación en transacciones globales usando JTA " .

Esencialmente, LRO tolera un recurso que no tiene fase de preparación y solo se puede confirmar o deshacer. Por lo tanto, si solo existe un recurso de este tipo en la transacción XA, primero podemos intentar preparar todos los demás, luego cometer ese LRO uno, luego, si tienen éxito, cometer otros, de lo contrario revertir otros.

Ves, no hay ninguna necesidad especial en declarar ninguna interfaz. Es un algoritmo que puede funcionar con cualquier recurso que no sea XA. No estoy seguro de por qué JBoss lo tiene, pero no espero que otros servidores tengan algo similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top