Вы находитесь на странице: 1из 15

DR.

LUIS BOY CHAVIL

Procesamiento

de Transacciones
Propiedades ACID
Modelos de Transacciones
Creacin de Transacciones en
ADO.NET

DR. LUIS BOY CHAVIL

Una

Transaccin es un conjunto de
tareas relacionadas que se realizan de
forma satisfactoria o incorrecta como
una unidad.
En trminos de procesamiento, las
transacciones se confirman o se anulan.
Para que una transaccin se confirme,
todos los participantes deben garantizar
la permanencia de los cambios
efectuados en los datos.
Los cambios deben conservarse aunque
el sistema se bloquee o tengan lugar
otros eventos imprevistos.
DR. LUIS BOY CHAVIL

Propiedades

ACID

ACID Expresa la funcin que las transacciones


desarrollan en aplicaciones crticas para una
misin.

Atomicity (Atomicidad)
Consistency (Consistencia)
Isolation (Aislamiento)
Durability (Permanencia)

DR. LUIS BOY CHAVIL

Una

Transaccin se ejecuta
exactamente una vez y tiene
carcter atmico; es decir, el
trabajo se realiza en su totalidad
o 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
End
Transaction.
DR. LUIS BOY CHAVIL

Una

transaccin es una unidad


integral porque mantiene la
coherencia
de
los
datos,
transformando
un
estado
coherente de datos en otro
estado de datos igualmente
coherente.
La coherencia requiere que los
datos enlazados mediante una
transaccin se mantenga en
trminos de semntica.
DR. LUIS BOY CHAVIL

Una

transaccin es una unidad


de aislamiento, permitiendo
que
transacciones
concurrentes se comporten
como si cada una fuera la
nica transaccin que se
ejecuta en el sistema.
Una transaccin nunca debe
ver las fases intermedias de
otra transaccin.
DR. LUIS BOY CHAVIL

Una

transaccin tambien es
una unidad de recuperacin.
Si una transaccin se realiza
satisfactoriamente, el sistema
garantiza
que
sus
actualizaciones se mantienen
aunque
el
equipo
falle
inmediatamente despus de la
confirmacin.
DR. LUIS BOY CHAVIL

Transacciones

Manuales
Transacciones Automticas

DR. LUIS BOY CHAVIL

Permiten

comenzar de forma explcita una


transaccin, controlar cada una de las
inscripciones de recursos y conexiones dentro
del lmite de la transaccin, determinar el
resultado de la misma (confirmacin o
anulacin) y finalizarla.
Tipos:

Transacciones de ADO .NET


Transacciones de Colas de Mensajes

Cuando se trabaja con aplicaciones distribuidas con


COM+
DR. LUIS BOY CHAVIL

Admitidas por:
Microsoft Transaction Server (MTS)
COM+
Common Lenguaje Runtime

Una vez que una pgina de ASP .NET, un mtodo


de servicio web XML, o una clase de .NET
Framework se marcan para participar en una
transaccin, se ejecutan automticamente 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

Para

comenzar una transaccin local,


usaremos el objeto de conexin de ADO.NET:
Connection.BeginTransaction
Inscribiremos un comando en esa transaccin
mediante la propiedad Transaction del objeto
Command.
Luego,
podremos
utilizar
el
objeto
Transaction para confirmar o deshacer las
modificaciones realizadas en el origen de
datos, en funcin del xito o de los errores
de los componentes de la transaccin.
DR. LUIS BOY CHAVIL

Declarar una variable de tipo SqlTransaction

Dim Tran As SqlTransaction

Definir una estructura Try..Catch..Finally que


maneje los posibles errores de ejecucin de
comandos:
En Try, abrir la conexin:

Crear la transaccin:

Cnn.Open()

Tran = Cnn.BeginTransaction

Configurar la propiedad Transaction de todos los


comandos que se desean en la transaccin

oComando.Transaction = Tran
DR. LUIS BOY CHAVIL

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 la


transaccin con Rollback dentro de Catch:

Tran.Rollback()

Cerrar

la coneccin si est abierta, dentro de


Finally:

If cnn.State=ConnectionState.Open then Cnn.Close()


DR. LUIS BOY CHAVIL

DR. LUIS BOY CHAVIL

Вам также может понравиться