Ver Mensaje Individual
  #1  
Antiguo 13-09-2016
andres_04_08 andres_04_08 is offline
Registrado
NULL
 
Registrado: ago 2016
Posts: 9
Reputación: 0
andres_04_08 Va por buen camino
Manejo de transacciones B.D. en WebService

Buenas tardes.

Estoy desarrollando WebService REST ISAP en DelphiXE3 utilizando bases de datos SQL Server.

En el proceso del W.S., debo realizar varios pasos en una sola transacción y lo hago de la siguiente forma:

Código:
VAR
   lTransactionDesc: TDBXTransaction;
...

// ** Inicio Transacción ** //
if not wsDataModule.SQLConnectionServer.InTransaction then
begin
   wsDataModule.SQLConnectionServer.CloseDataSets;
   lTransactionDesc := wsDataModule.SQLConnectionServer.BeginTransaction(TDBXIsolations.ReadCommitted);
end;

//Acá van todas las operaciones que debo hacer en mi transacción

// ** Finalizo transacción ** //
if wsDataModule.SQLConnectionServer.InTransaction then
   wsDataModule.SQLConnectionServer.CommitFreeAndNil(lTransactionDesc);
La transacción la estoy creando sobre la conexión a mis datos (TSQLConnection), el problema es que si el servicio es invocado más de una vez al mismo tiempo, las transacciones se mezclan porque todas utilizan la misma conexión.

¿Cual sería la manera correcta de manejar las transacciones?
Responder Con Cita