Compensación en procesos BPEL (Compensation Handler)

Es común encontrarse con procesos BPEL que contienen transacciones anidadas. Si el proceso falla una vez procesada alguna de estas transacciones, podemos vernos con la necesidad de compensar nuestro proceso o reaccionar al fallo.

avanttic - Compensación en procesos BPEL

Con esta finalidad, el lenguaje BPEL proporciona lo que denomina Compensation Handler(CH). Cada scope o actividad invoke de nuestro proceso puede tener un CH y cada CH está formado por una o varias actividades. Un CH, puede ser ejecutado de forma directa (especificando el nombre del scope a compensar) o indirecta mediante una actividad compensate.

La ejecución de un CH de forma explícita (o directa) puede realizarse, únicamente, desde un scope o CH de nivel directamente superior al CH que queremos llamar.

Una ventaja principal con los Error Handlers es que, en el caso de que el scope contenga iteraciones, las actividades compensatorias se ejecutarán por cada iteración en orden inverso.

En la documentación oficial (en inglés) encontraréis un ejemplo práctico del uso de esta funcionalidad: Using Compensation.

Gracias a este gestor de compensación CH, conseguimos un mayor control sobre las transacciones de nuestros procesos BPEL.

Evolución, innovación y transformación
37 especializaciones avaladas por Oracle
Oportunidades ilimitadas
El equipo marca la diferencia
Posts 100% Oracle
Sigue nuestro día a día