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:50Moderador
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
-
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 SnippetDim 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:
Espero te sea de utilidad.
-
martes, 29 de mayo de 2007 15:21
muchas gracias, ya pude realizar las transacciones distribuidas en 3 capas... -
martes, 05 de mayo de 2009 7:36este 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.

