Transacciones en ADO.NET

Embed Size (px)

Citation preview

  • 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()