Confused, what is the relation between MSDTC timeout and System.Transaction Option?
What I seem to be seeing is that when I create a System.Transaction with:
transactionOptions.Timeout =
new
TimeSpan(0)but keep the COM+ Explorer MSDTC timeout at 60sec it timesout at 60secs. I don't have have Enterprise Services attribs on my code. What's happening or am I just going mad!?
[429 byte] By [
pkr2000] at [2007-12-24]
Thanks Miguel, is that an educated guess or do you know that to be true? If it is true then at least it would explain what is going on although I'd be a little bit suprised by that behaviour. I'd always considered the COM+ Explorer settings to be a default value if you omit the timeout in System.Transaction rather than an alternative value. So I find it very odd that if I specify a timeout then it should be overriden by a default!
I've run a quick test application that requests an infinite timeout, does some work, sleeps for 65 secs and then commits. I've set my DTC timeout to 60secs and the code works fine. I can see the Tx in the DTC statistics come and go so I don't believe it takes the lesser of the two values. So I'm still dazed and confused!
The plot thickens. I've now spotted that the timeout occurs after 10 mins! Regardless of the number in the DTC timeout or the .net code. Where does 10 mins come from?
[Edit] One possible source is the SQL (2000) remote query timeout that's set to 600s. However, I've tried setting that to 0 (no timeout) and I still get the same 10 min rollback. I'm really puzzled by this since I've had a number of very long running Txs in the past. What's changed?