TransactionScope is meant to work with a System.Transactions.Transaction. NHibernate does not use this, but instead uses System.Data.IDBTransaction. It does not appear that there is any way to get the 2 kinds of Transaction to interoperate.
Why does Microsoft create this kind of problem? John Davidson On Thu, May 6, 2010 at 11:09 AM, Carlos cubas <[email protected]> wrote: > Oh wow my feature request got some spot light :). > > If I get a chance today I'll open a Jira feature request for a > "Transaction Scope" section on the official reference documentation. > > > -Carlos > > Practice makes perfect, but if no one is perfect, why practice? > > > > > ------------------------------ > Date: Thu, 6 May 2010 11:36:28 -0300 > Subject: Re: [nhibernate-development] leaking connections when using > transactionscope without NH transaction > From: [email protected] > To: [email protected] > > > I feel a déjà vu... we discussed this same issue last month (but I think it > was on the users group). > There's even an open jira: http://216.121.112.228/browse/NH-2181 > > <http://216.121.112.228/browse/NH-2181>If you ask me... we do have a > violation of the principle of least surprise. > I can't count how many mails in the users group and questions in > Stackoverflow I've answered with "use a transaction". > > While I agree with Fabio in that an official reference on TransactionScope > is needed (in the main docs), this should be more intuitive for new users. > Maybe NH 3 is an opportunity to introduce breaking changes... > > Diego > > > On Thu, May 6, 2010 at 11:12, Davy Brion <[email protected]> wrote: > > Well for starters, it just feels pointless to use an NHibernate Transaction > if TransactionScope is supposed to take care of that for you. And let's be > honest here, that's just how it works with probably every other data layer > out there in the .NET world. Why should we be different? > > But if usage of an NH transaction is indeed absolutely required, then we > sure shouldn't put up with the current behavior either. It's way too easy > to make a mistake with it and just putting a notice in the official > reference about it feels like a cop-out instead of actually dealing with a > real problem. > > On Thu, May 6, 2010 at 4:03 PM, Fabio Maulo <[email protected]> wrote: > > IMO is the moment to write something in out official reference. > We should dedicate a section on : *How work with TransactionScope* > > I have never found a problem because I'm opening the NH'session and begin, > always, the NH's transaction inside the transaction scope. All problem I > have seen is about ppl who don't want use the NH's transaction... with which > reason ? so far I saw only "style" reason... for me the "style" is a matter > for FashionTV. > > On Thu, May 6, 2010 at 9:59 AM, John Davidson <[email protected]>wrote: > > It may seem to be a good idea to have a mandatory transaction within a > session, but you are forgetting that a session may use many transactions, > which makes it difficult to force a transaction creation within a sesssion. > I.E. when you commit a transaction and and the session is not yet closed do > you automatically create another transaction, just in case the session is > going to do more transactional work? > > I think many of the problems are a result of changes from v1.2 to 2.x where > it was recognized that a transaction was necessary for any read or write > activity with the database. However, there probably is a substantial body of > applications started in v1.2 that were upgraded to v2.x where the upgrade to > wrap all reads did not happen. > > I don't think this can easily be fixed by changing the session semantics. > > John Davidson > > > On Thu, May 6, 2010 at 8:42 AM, Davy Brion <[email protected]> wrote: > > yup, i feel the same way > > > On Thu, May 6, 2010 at 2:37 PM, Richard Brown <[email protected]>wrote: > > IMHO, if the usage is not allowed, we should change the API to disallow > session without a tx. If it is allowed we should fix it. > > Sent from my Android phone. > > On 6 May 2010 13:19, "Davy Brion" <[email protected]> wrote: > > Hey guys, > > i just ran into a weird issue with leaking connections due to using a > TransactionScope without using an NH transaction... i've described the > problem here: > > http://davybrion.com/blog/2010/05/avoiding-leaking-connections-with-nhibernate-and-transactionscope/ > > the thing is: is this a bug in NH or not? I mean... it might be due to bad > usage, but if the usage scenario is bad, then NHibernate should probably > warn against it instead of playing along and failing silently in some > cases... > > thoughts? > > > > > > > > -- > Fabio Maulo > > > >
