8/18/2019 12-Transacciones en Ado Net
1/15
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
2/15
Procesamiento de Transacciones
Propiedades ACID
Modelos de TransaccionesCreación de Transacciones enADO.NET
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
3/15
Una Transacción es un conjunto detareas relacionadas que se realizan deforma satisfactoria o incorrecta comouna unidad.
En términos de procesamiento, lastransacciones se confirman o se anulan.
Para que una transacción se confirme,todos los participantes deben garantizar
la permanencia de los cambiosefectuados en los datos.Los cambios deben conservarse aunque
el sistema se bloquee o tengan lugarotros eventos imprevistos.
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
4/15
Propiedades ACID
ACID Expresa la función que las transaccionesdesarrollan en aplicaciones críticas para unamisión. Atomicity (Atomicidad)
Consistency (Consistencia)
Isolation (Aislamiento)
Durability (Permanencia)
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
5/15
Una Transacción se ejecutaexactamente una vez y tienecarácter atómico; es decir, el
trabajo se realiza en su totalidado no se realiza en ningún caso.Una Transacción es una unidad
de trabajo en la que se produce
una serie de operaciones entre:Begin Transaction y EndTransaction.
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
6/15
Una transacción es una unidadintegral porque mantiene lacoherencia de los datos,
transformando un estadocoherente de datos en otroestado de datos igualmentecoherente.
La coherencia requiere que losdatos enlazados mediante unatransacción se mantenga entérminos de semántica.
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
7/15
Una transacción es una unidadde aislamiento, permitiendoque transacciones
concurrentes se comportencomo si cada una fuera laúnica transacción que seejecuta en el sistema.
Una transacción nunca debever las fases intermedias deotra transacción.
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
8/15
Una transacción tambien esuna unidad de recuperación.
Si una transacción se realizasatisfactoriamente, el sistemagarantiza que susactualizaciones se mantienenaunque el equipo falleinmediatamente después de laconfirmación.
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
9/15
Transacciones Manuales
Transacciones Automáticas
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
10/15
Permiten comenzar de forma explícita unatransacción, controlar cada una de lasinscripciones de recursos y conexiones dentro
del límite de la transacción, determinar elresultado de la misma (confirmación oanulación) y finalizarla.
Tipos:
Transacciones de ADO .NET Transacciones de Colas de Mensajes Cuando se trabaja con aplicaciones distribuidas con
COM+
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
11/15
Admitidas por: Microsoft Transaction Server (MTS)
COM+
Common Lenguaje Runtime
Una vez que una página de ASP .NET, un métodode servicio web XML, o una clase de .NETFramework se marcan para participar en unatransacción, se ejecutan automáticamente en elámbito de la misma.
Tipos: Transacciones de ASP .NET
Transacciones de servicios Web XML
Transacciones de servicios empresariales .NET
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
12/15
Para comenzar una transacción local,usaremos el objeto de conexión de ADO.NET:Connection.BeginTransaction
Inscribiremos un comando en esa transacciónmediante la propiedad Transaction del objetoCommand.
Luego, podremos utilizar el objeto
Transaction para confirmar o deshacer lasmodificaciones realizadas en el origen dedatos, en función del éxito o de los erroresde los componentes de la transacción.
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
13/15
Declarar una variable de tipo SqlTransaction Dim Tran As SqlTransaction
Definir una estructura Try..Catch..Finally quemaneje los posibles errores de ejecución de
comandos: En Try, abrir la conexión: Cnn.Open()
Crear la transacción:
Tran = Cnn.BeginTransaction Configurar la propiedad Transaction de todos los
comandos que se desean en la transacción oComando.Transaction = Tran
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
14/15
Ejecutar los comandos con ExecuteNonQuery
oComando.ExecuteNonQuery
Si ningún comando genera una excepción,
realizar la transacción mediante Commit: Tran.Commit()
Si algún comando genera un error, anular latransacción con Rollback dentro de Catch:
Tran.Rollback()Cerrar la conección si está abierta, dentro de
Finally: If cnn.State=ConnectionState.Open then Cnn.Close()
DR. LUIS BOY CHAVIL
8/18/2019 12-Transacciones en Ado Net
15/15
DR. LUIS BOY CHAVIL
Top Related