Rollback en Process Flow

Ver el tema anterior Ver el tema siguiente Ir abajo

Rollback en Process Flow

Mensaje  equipoBI el Lun 10 Ago 2009, 16:04

Buenas,

Estamos diseñando una serie de flujos de proceso que a su vez contienen otros flujos de proceso y tenemos una duda con respecto al funcionamiento del rollback.

Si tuviésemos un flujo de proceso que contuviese a otros dos, el primero funciona correctamente pero el segundo falla, ¿el rollback se ejecuta sólo para él?

Lo que nos interesa conseguir es un flujo de proceso con "subflujos" y si falla alguno de ellos, hacer un rollback "completo" de todos los cambios que se hayan podido producir, para restaurar las bases de datos al estado anterior del lanzamiento de la ejecución.

¿Existe alguna manera de conseguir esto configurando alguna propiedad de OWB?

Gracias de antemano!

equipoBI

Cantidad de envíos : 128
Fecha de inscripción : 24/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Rollback en Process Flow

Mensaje  Julio.T el Lun 10 Ago 2009, 16:52

Hola,

Yo lo he visto hacer con Savepoints. Es decir, el primer paso del flujo de proceso, hace una llamada a un procedimiento almacenado en la base de datos que crea un savepoint. Y en la parte final del flujo de proceso en caso de que falle hace una llamada a otro método que haga un rollback hasta el savepoint o en caso de finalizar correctamente confirme los cambios.

Espero haberos ayudado

Julio.T

Cantidad de envíos : 106
Localización : Zaragoza
Fecha de inscripción : 26/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

RE: Rollback en Process Flow

Mensaje  D. Campo el Lun 10 Ago 2009, 21:59

Hola.

La forma que se me ocurre para que puedes hacer lo que deseas es:

1-)
Selecciona la opción CONFIGURE/CONFIGURAR que te aparece presionando
click derecho sobre un ETL, allí coloca la propiedad COMMIT_CONTROL en
MANUAL. (Creo que esta propiedad elimina los commit automaticos, por lo
tanto para guardar los cambios hay que hacer un commit manual,
"obvio"). Este paso lo vas a repetir para cada uno de los ETL que vayas
a utilizar en el process flow.

2-) Crea un procedimiento o funcion que haga commit;

3-) Modifica tu process flow de tal forma que la última instrucción a ejecutar sea la funcion que hace commit.

4-) Compila y ejecuta nuevamente tu process flow.

Creo que esto te deberia funcionar.

D. Campo

Cantidad de envíos : 101
Localización : Caracas
Fecha de inscripción : 13/05/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Rollback en Process Flow

Mensaje  bvillamor el Mar 11 Ago 2009, 14:58

Efectivamente ese es el camino, usar el commit manual. De todos modos, ten en cuenta que si alguna correspondencia tiene modo de carga truncate/insert, no se podrá hacer rollback de esa parte. Si es delete/insert sí se puede hacer rollback. Ten en cuenta también la posible degradación del rendimiento al mantener un gran volumen de datos sin confirmar. Con la opción que comenta Julio no habría variación en el rendimiento.

Para más información consulta el apartado 'Running Multiple Mappings Before Committing Data' en el capítulo 8 del manual de usuario de OWB, esta es la URL, http://download-west.oracle.com/docs/cd/B31080_01/doc/owb.102/b28223/concept_etl_performance.htm#CHDHFBEH

Begoña.

bvillamor

Cantidad de envíos : 388
Localización : Madrid
Fecha de inscripción : 18/02/2009

Ver perfil de usuario http://www.adiante.es

Volver arriba Ir abajo

Re: Rollback en Process Flow

Mensaje  equipoBI el Mar 11 Ago 2009, 15:10

Muchas gracias por vuestras respuestas.

En cuanto a los savepoints, en nuestro caso parece que no aplicaría ya que tendríamos que hacer un savepoint al principio del todo de ambas bases de datos para hacer rollback a dichos savepoints si no funcionase bien, lo que sería lo mismo que hacer un rollback directamente.

La opción de desactivar el auto commit en cada una de las mappings para hacer sólo commit al final en caso de que todo vaya bien, creemos que podría dar problemas con el segmento de rollback, ya que se van guardando los cambios que se realizan en la base de datos para poder restaurarlos.

Nosotros borraríamos y cargaríamos bases de datos completas, por lo que podría llegar a llenarse el segmento de rollback...

¿Alguna otra idea?

Gracias!

equipoBI

Cantidad de envíos : 128
Fecha de inscripción : 24/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Rollback en Process Flow

Mensaje  Contenido patrocinado Hoy a las 17:31


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.