Download - Transacciones en ADO.NET
-
7/31/2019 Transacciones en ADO.NET
1/14
MG. LUIS BOY CHAVIL
-
7/31/2019 Transacciones en ADO.NET
2/14
Procesamiento de Transacciones
Propiedades ACID
Modelos de TransaccionesCreacin de Transacciones enADO.NET
-
7/31/2019 Transacciones en ADO.NET
3/14
Una Transaccin es un conjunto detareas relacionadas que se realizan deforma satisfactoria o incorrecta comouna unidad.
En trminos de procesamiento, lastransacciones se confirman o se anulan.
Para que una transaccin 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.
-
7/31/2019 Transacciones en ADO.NET
4/14
Propiedades ACID
ACID Expresa la funcin que las transaccionesdesarrollan en aplicaciones crticas para unamisin. Atomicity (Atomicidad)
Consistency (Consistencia)
Isolation (Aislamiento)
Durability (Permanencia)
-
7/31/2019 Transacciones en ADO.NET
5/14
Una Transaccin se ejecutaexactamente una vez y tienecarcter atmico; es decir, el
trabajo se realiza en su totalidado no se realiza en ningn caso.Una Transaccin es una unidad
de trabajo en la que se produce
una serie de operaciones entre:Begin Transaction y EndTransaction.
-
7/31/2019 Transacciones en ADO.NET
6/14
Una transaccin 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 unatransaccin se mantenga entrminos de semntica.
-
7/31/2019 Transacciones en ADO.NET
7/14
Una transaccin es una unidadde aislamiento, permitiendoque transacciones
concurrentes se comportencomo si cada una fuera lanica transaccin que seejecuta en el sistema.
Una transaccin nunca debever las fases intermedias deotra transaccin.
-
7/31/2019 Transacciones en ADO.NET
8/14
Una transaccin tambien esuna unidad de recuperacin.
Si una transaccin se realizasatisfactoriamente, el sistemagarantiza que susactualizaciones se mantienenaunque el equipo falleinmediatamente despus de laconfirmacin.
-
7/31/2019 Transacciones en ADO.NET
9/14
Transacciones Manuales
Transacciones Automticas
-
7/31/2019 Transacciones en ADO.NET
10/14
Permiten comenzar de forma explcita unatransaccin, controlar cada una de lasinscripciones de recursos y conexiones dentro
del lmite de la transaccin, determinar elresultado de la misma (confirmacin oanulacin) y finalizarla.
Tipos:
Transacciones de ADO .NET Transacciones de Colas de Mensajes Cuando se trabaja con aplicaciones distribuidas con
COM+
-
7/31/2019 Transacciones en ADO.NET
11/14
Admitidas por: Microsoft Transaction Server (MTS)
COM+
Common Lenguaje Runtime
Una vez que una pgina de ASP .NET, un mtodode servicio web XML, o una clase de .NETFramework se marcan para participar en unatransaccin, se ejecutan automticamente en elmbito de la misma.
Tipos: Transacciones de ASP .NET
Transacciones de servicios Web XML
Transacciones de servicios empresariales .NET
-
7/31/2019 Transacciones en ADO.NET
12/14
Para comenzar una transaccin local,usaremos el objeto de conexin de ADO.NET:Connection.BeginTransaction
Inscribiremos un comando en esa transaccinmediante la propiedad Transaction del objetoCommand.
Luego, podremos utilizar el objeto
Transaction para confirmar o deshacer lasmodificaciones realizadas en el origen dedatos, en funcin del xito o de los erroresde los componentes de la transaccin.
-
7/31/2019 Transacciones en ADO.NET
13/14
Declarar una variable de tipo SqlTransaction Dim Tran As SqlTransaction
Definir una estructura Try..Catch..Finally quemaneje los posibles errores de ejecucin de
comandos: En Try, abrir la conexin: Cnn.Open()
Crear la transaccin:
Tran = Cnn.BeginTransaction Configurar la propiedad Transaction de todos los
comandos que se desean en la transaccin oComando.Transaction = Tran
-
7/31/2019 Transacciones en ADO.NET
14/14
Ejecutar los comandos con ExecuteNonQuery
oComando.ExecuteNonQuery
Si ningn comando genera una excepcin,
realizar la transaccin mediante Commit: Tran.Commit()
Si algn comando genera un error, anular latransaccin con Rollback dentro de Catch:
Tran.Rollback()Cerrar la coneccin si est abierta, dentro de
Finally: If cnn.State=ConnectionState.Open then Cnn.Close()