We're using .NET 2.0 TransactionScope on a Vista client. By default this will create a distributed transaction using MTS which will then be proxied using Oracle Services for MTS. However we consistently get the following error:
ORA-00161: transaction branch length 100 is illegal (maximum allowed 64).
According to this thread http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=943955&SiteID=1 Microsoft made some changes in MSDTC in Vista which are likely to have caused this problem. They say they were co-ordinating with Oracle to determine an appropriate fix.
Is this an acknowledged issue? Has it been fixed and if not, when will it be fixed?
FYI, the following code reproduces the issue...
using (TransactionScope txScope = new TransactionScope())
using (OracleConnection oracleConnection = new OracleConnection("Data Source=Test;User Id=Test;Password=Test"))
using (OracleCommand oracleCommand = new OracleCommand("SELECT 'Test' FROM Test", oracleConnection))
oracleCommand.Connection = oracleConnection;
using (OracleDataReader oracleDataReader = oracleCommand.ExecuteReader())