12-Transacciones en Ado Net

download 12-Transacciones en Ado Net

of 15

Transcript of 12-Transacciones en Ado Net

  • 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