yes On Mon, Mar 23, 2009 at 3:12 PM, Michael Teper <[email protected]>wrote:
> Ayende, I am not sure what you meant by this comment, but from your other > replies, it sound like you agree with me that it would be better if explicit > session.BeginTransaction was not requried, correct? > > Thanks! > -Michael > > ------------------------------ > *From:* [email protected] [ > [email protected]] On Behalf Of Ayende Rahien [ > [email protected]] > *Sent:* Monday, March 23, 2009 11:48 AM > > *To:* [email protected] > *Subject:* [nhibernate-development] Re: More DTC issues > > We don't really care for that, we let the DTC infrastructure take care of > this. > > On Mon, Mar 23, 2009 at 12:57 PM, Michael Teper > <[email protected]>wrote: > >> Fabio, Ayende, >> >> Another thing to consider is the nested transaction scenario like this: >> >> using (var scopeOuter = new TransactionScope()) >> { >> // load / change some object(s) >> >> using (var innerScope = new TransactionScope()) >> { >> try >> { >> // load / change something else >> innerScope.complete(); >> } >> catch { // do something } >> } >> >> outerScope.complete(); >> } >> >> This may look silly but if the inner transaction is encapsulated in a >> different class, this is a very plausible scenario. Wherever NH keeps track >> of the current transaction scope, it needs to be aware of potential for >> nesting. >> >> Thanks! >> -Michael >> >> >> ------------------------------ >> *From:* [email protected] [ >> [email protected]] On Behalf Of Fabio Maulo [ >> [email protected]] >> *Sent:* Monday, March 23, 2009 9:45 AM >> *To:* [email protected] >> *Subject:* [nhibernate-development] Re: More DTC issues >> >> >> >> 2009/3/23 Ayende Rahien <[email protected]> >> >>> The problem is that usually the DTC is opened by a lower level component, >>> and my code has no control over it. More than that, I usually don't have >>> control over NH's code as well. >>> >>> It goes like this: >>> >>> 1/ low level infrastructure - dtc >>> 2/ high level infarstruture - nh >>> 3/ business code - my stuff >>> >> >> and then >> 3 -end >> 2- end >> 1-end >> >> If 2 don't know about 1, 2 should use session.BeginTransaction and >> session.Transaction.Commit(). >> >> >>> >>> I don't want to be aware of all of this issues, I just want to make >>> this work. >>> So explicitly flushing is an option that I would generally be against. >>> >>> Making NH's transaction equal to the dtc is also not a good option, >>> because the use of the DTC is to manage several resources, not just NH. >>> >> >> You know... I never said dtc=nhTx >> What I would like to avoid is If(DTC) {something} else {somethingelse} >> inside NH-Core. >> >> -- >> Fabio Maulo >> > >
