Un pequeño aporte, Nosotros estamos utilizando transaction scope con entLib 3.1 para una transacción distribuída entre dos SQL2K5 y funciona perfecto, es tan transparente que parece mentira.
Saludos, On 10/25/07, Juan Carlos Garcia <[EMAIL PROTECTED]> wrote: > Guillermo: > Desde ya muchisimas gracias por el dato y mil perdones porque no te > conteste antes, lo que pasa es que hoy tengo un día bastante complicado. > > Estuve viendo la Entlib 3.1 que me comentás y para sorpresa mia, (por > lo > menos en los dos minutos que la ví por arriba), define la clase: > - "Microsoft.Practices.EnterpriseLibrary.Data.TransactionScopeConnections" > > Y te transcribo el summary de la documentación XML de la clase: > > /// <summary> > /// This class manages the connections that will be used when > transactions > are active > /// as a result of instantiating a <see > cref="TransactionScope"/>. When a > transaction > /// is active, all database access must be through this single > connection > unless you want > /// to use a distributed transaction, which is an expensive > operation. > /// </summary> > > Que es prácticamente la segunda solución que comentaba en mi mail > original, > es decir, esta clase define una especie de "pool de conexiones" pero solo de > las que participan en transacciones, de forma tal que cuando se requiere una > nueva conexión, si ya hay una creada dentro de la transacción la devuelve y > la libera automáticamente recién cuando la transacción finaliza y esto se > realiza capturando el evento "Transaction.TransactionCompleted". > > Desde ya, y es bueno que lo hayas aclarado en tu respuesta, esto aplica > solo a conexiones contra SQL Server 2005, ya que en cualquier otro caso, > (SQL 2000 o anterior, Oracle, etc), la transacción si o si escala a DTC mal > que nos pese. > > A su vez como por lo que veo esta librería esta disponible tanto para > el > framework 2.0, (que estoy usando), como para el 3.0, estimo que este > problema no debe estar solucionado aún, (no se para la versión 3.5 del > framework). > > Vuelvo a agradecerte inmensamente la mano que me diste y te mando un > fuerte > abrazo para vos y todos los de la lista!!! > > > -----Mensaje original----- > De: [email protected] [mailto:[EMAIL PROTECTED] nombre de > Guillermo Estevez > Enviado el: Miércoles, 24 de Octubre de 2007 09:38 p.m. > Para: [email protected] > Asunto: [puntonet] Implementar System.Transactions > > > Si utilizas el Data Access Application Block que viene con las Enterprese > Library 3.1, no vas a tener problema. > http://www.codeplex.com/entlib > > En el proyecto que estoy trabajando utilizamos System.Transactions y con las > últimas versiones del DAAB las transacciones ya no escalan las transacciones > a DTC. > Siempre suponiendo que la base de datos es SQL server 2005!!! > > Saludos, > > > > -----Original Message----- > From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Juan > Carlos Garcia > Sent: miércoles, 24 de octubre de 2007 18:13 > To: [email protected] > Subject: [puntonet] Implementar System.Transactions > > Investigando un poco como implementar la API System.Transactions, > (nueva en > el framework 2.0), me encuentro con un pequeño problema o error conceptual > del diseño de la misma por el cual: > > Si dentro de una misma transacción se crea más de una conexión, > aunque no > sea al mismo tiempo, y aunque ambas conexiones sean idénticas la transacción > es promovida automáticamente a DTC lo cual tiene serias penalidades en > terminos de performance para la aplicación. Sobre todo para el caso de > aplicaciones sencillas que acceden a un único recurso, (es decir a la misma > base de datos en el mismo servidor) y no requieren de una transacción > distribuida. > > Por lo que estuve investigando, este problema es conocido y se > encuentra > comentado en el siguiente feedback de Microsoft "Transactions "needlessly" > promote when using the same connection" en > http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?Feedbac > kID=171884 > y en la discusión "Unwanted promotion using TransactionScope" en los foros > de microsoft en > http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=113669&SiteID=1. > > Al parecer este problema debería solucionarse en una próxima > release, pero > mientras tanto hay algunos posibles workaround's al problema, como se > comenta en: > > - http://blogs.msdn.com/dataaccess/archive/2006/02/14/532026.aspx > - > http://geeks.ms/blogs/ivan/archive/2006/09/27/Sobre-las-transacciones_2C00_- > las-conexiones_2C00_-el-LTM-y-el-DTC.aspx > > De ambas soluciones me gusta más la segunda, pero en fin, lo que > quería > saber, y para eso los molesto, es si ustedes están utilizando > System.Transactions, que experiencia tienen, que solución les parece mejor > para el problema de la promoción innecesaria de LTM a DTC. > > Desde ya, muchas gracias y saludos a todos!!! > > Ing. Juan Carlos Garcia > Dto. Sistemas > Manuel Tienda León > mailto:[EMAIL PROTECTED] > > > > > > > > > -- Leonardo Micheloni. http://leomicheloni.blogspot.com/
