Chinh Do

Light-weight System.Transactions in ODP.NET

First time here? Check out my greatest hits or look around in the archives, and consider subscribing to the latest posts via RSS or email. Thanks for visiting.
3rd December 2007

Light-weight System.Transactions in ODP.NET

Starting in ODP.NET version 10.2.0.3.3, support for light-weight transactions has been added. Here’s an excerpt from readme.txt:

This feature enables applications to use local transactions with System.Transactions where previous versions of ODP.NET supported only distributed transactions with System.Transactions. If the PromotableTransaction registry does not exist, the default value of “promotable” is used. If “promotable” is specified, first and subsequent connections opened in the same TransactionScope will enlist in the same distributed transaction. If “local” is specified, the first connection opened in the TransactionScope will use a local transaction. If any subsequent connections are opened within the same TransactionScope, an exception will be thrown. If there are connections opened already in the TransactionScope and an OracleConnection with “Promotable Transaction=local” is attempted to be opened within the same TransactionScope, an exception will also be thrown.

This is great for those of us who use ODP.NET with System.Transactions, especially if you use global temporary tables. I found out the hard way that global temporary tables are not supported with distributed transactions.

Version 10.2.0.3.3 is not yet available for download via Oracle.com. You have to request it through Metalink. Search for patch number 5916667. I have not tested this patch yet but I will soon.

posted in Dotnet/.NET - C#, Programming | 2 Comments