Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Compartir transacciones

Estas en el tema de Compartir transacciones en el foro de Oracle en Foros del Web. Tengo una aplicación web que maneja transacciones de base de datos y estas transacciones estan modeladas según sea el Caso de Uso. Un ejemplo sería: ...
  #1 (permalink)  
Antiguo 16/01/2007, 21:33
 
Fecha de Ingreso: enero-2007
Mensajes: 1
Antigüedad: 17 años, 3 meses
Puntos: 0
Compartir transacciones

Tengo una aplicación web que maneja transacciones de base de datos y estas transacciones estan modeladas según sea el Caso de Uso. Un ejemplo sería:
  • s seleccionar un cliente
  • s seleccionar producctos para confeccionar un formulario de venta
  • s persistir el formulario
  • s calcular el presupuesto de venta
  • s persistir el presupuesto y el formulario para su aprobaciòn
  • s Aceptar o cancelar.
En caso de cancelar se rolbackea, puesto que todo estaba dentro de la misma transaccion se rollbakcea todo.
Todo esto esta hecho en java y al hacer rollback se rollbackea todo. Por motivos que no vienen al caso ahora el cálculo del presupuesto no se hace en java sino que se llama a un PL/Sql que realiza el càlculo, para hacer esto tengo que persistir el formulario para que el PL/SQL sepa que sumar (los productos del formulario de venta) y commitearlo para que lo vea (recordemos que toda la operatoria estaba en una transaccion), ahora bien vemos que el cancelar que tenia al principio ahora tendrìa que borrar (delete) en lugar de solo hacer un simple rollback dado que toda la operaciòn deberia estar dentro de una trasacciòn.

Existe forma de compartir la transaccion entre ambos procesos (java y el PL/SQL)? El PL/SQL se llama desde java mediante la base de datos con un store procedure.

Pd: no es importante el ejemplo, lo que importa es el problema que tengo al tener que persistir datos para que los vea el PL/SQL y luego tener que hacer un rollback, situacion de la que no me puedo escapar en el caso real.

Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:18.