Hi there, I've found some useful tips on using CallContext to link multiple transactional methods (in this same list and CodeProject, thanks Craig Andera and Deyan) . With this I modified my previous shared transaction version, adding a few shared methods to join/rollback/commit the actual CallContext transaction. Example:
ClassA.Insert Method (...) SharedTransaction.Current_Connect(ConnectionString) (...) SharedTransaction.Current_IncludeCommand(MySQLCmd) MySLCmd.ExecuteNonQuery SharedTransaction.Current_Commit (or) SharedTransaction.Current_Rollback Currently I have one limitation of one transaction per callcontext, I'm not needing more than one anyway... at lest for now. To identify the root method I am now using StackFrame ILOffset, this way I can call other methods on the same class without having to create a new instance, they will have a chance to vote commit/rollback independently. I'm not implementing ILogicalThreadAffinitive, because I think I won't need to pass my transactions across different AppDomains. The reason that I'm using call context and not a shared class member for storing the transaction is that I really need to pass it between different classes, CallContext seemed a better option to me after reading the sdk docs. As anyone tried this for real? Are there known problems/limitations with this approach? Thanks in advance, RQ You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.