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/

Responder a