Transacciones Distribuidas en vb.net con tech de tres capas

Respondida Transacciones Distribuidas en vb.net con tech de tres capas

  • jueves, 24 de mayo de 2007 19:44
     
     

    Saludos a todos y dejenme agradecer la ayuda que ha sido este foro. Gracias.

     

    de lleno entro con mi pregunta, como se pueden realizar transacciones distribuidas, es decir el begintransaction, comit, y rollback, en vb.net 2005, pero cuando se esta utilizando las tres capas para el desarrollo de un soft.

     

    de antemano muchas gracias por su ayuda

Todas las respuestas

  • viernes, 25 de mayo de 2007 6:50
    Moderador
     
     

     

    Hola,

     

    Pues tu capa de acceso a datos debe dejarte usar transacciones proveyendote de metodos que faciliten su uso.

     

    Si tu capa de acceso a datos esta hecha como una factory no tendras problemas, ya que usaras el mismo objeto conexion desde todos tus metodos de tu capa de negocio y la transaccion sera comun a todo ellos tambien.

     

    Sino tendras que preocuparte de ir "pasando" la transaccion de unos metodos a otros de tu capa de negocio.

     

    http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art140.asp

     

    Un saludo.

  • viernes, 25 de mayo de 2007 12:36
     
     

    Y un dato más, si estas utilizando net 2.0 puedes utilizar TransactionScope:

     

    http://msdn2.microsoft.com/es-es/library/system.transactions.transactionscope(VS.80).aspx

     

    Salu2

     

    Colabora con el foro: Si la respuesta te es de utilidad marca la pregunta como respondida.

    Luis Ruiz Pavón

    MCP

    Blog: http://geeks.ms/blogs/lruiz

  • lunes, 28 de mayo de 2007 2:25
     
     

    En ese caso lo ideal es usar la clase TransactionScope que encontrarás en la dll System.Transactions de .NET Framework 2.0 o superior. Normalmente lo que haces es iniciar un ámbito de transacción en tu capa 2, la capa de negocio y dentro de dicho ámbito mandas a invocar a todos los objetos de la capa 3 (acceso a datos) ó a otros objetos de capa 2 que intervengan en el proceso. Algo así:

     

    Code Snippet

            Dim bancoAD As New BancosAccesoADatos

            Using ambito As New TransactionScope

                bancoAD.Debitar()

                bancoAD.Acreditar()

     

                ambito.Complete()

            End Using

     

    TransactionScope se encargará de asegurar que todo quede dentro de una transacción común y hará el Commit una vez que invoques a su método Complete.

     

    En este artículo te explican el uso de TransactionScope con más detalle:

    http://msdn2.microsoft.com/es-es/library/ms172152(VS.80).aspx

     

    Te recomiendo también este artículo que publiqué hace poco:

    http://msguayaquil.com/blogs/julioc/archive/2007/05/07/usando-transactionscope-con-enterprise-library-3-0.aspx

     

    Espero te sea de utilidad.

  • martes, 29 de mayo de 2007 15:21
     
     Respondida
    muchas gracias, ya pude realizar las transacciones distribuidas en 3 capas...
  • martes, 05 de mayo de 2009 7:36
     
     
    este ejemplo me ha sido util. pero entiendo que no se puede desconectar de la BBDD, sin embargo a mi siempre ( cuando implemento este tipo de transaccion) me dice que se desconecta y cancela la transaccion.
    Entiendo que tengo que compartir la conexion con todos los objetos, y lo hago pero no quiero una app siempre conectada..
    Me gustaria que al cargar los objetos de negocio no utilizara transacciones ( que no lo hace) y que fuese desconectado...
    Si alguien me puede echar una mano..


    Gracias.