Just looked at the source code myself. So where does the connection get closed when an NHibernate tx is committed? There is a method named CloseIfRequired that get's called in a finally block in the AdoTransaction.Commit method. This method looks like it should be closing the connection, but the body of the method is commented out (I'm looking at NHibernate vs in Rhino.Commons)
I'm obviously not a trusting kinda guy ;-) Christian PS. This has already been mentioned here: http://forum.hibernate.org/viewtopic.php?p=2399194#2399194 On Nov 7, 9:24 pm, "Ayende Rahien" <[EMAIL PROTECTED]> wrote: > Frederik,Try to check the perf counters for the connection pooling. > > On Fri, Nov 7, 2008 at 11:20 PM, FrederikGheysels < > > [EMAIL PROTECTED]> wrote: > > > Then, what is a good way to see whether the connection is really > > closed ? > > Even if I want to detach my DB (while the session is still open, but > > the transaction has been committed), I see that there is still an > > active connection to the DB. > > > I'm sorry that I am a bit ... persistent ... Fabio, but I really want > > to see it with my own eyes. :) > > > When I explicitly disable connection pooling, I can indeed see that > > the number of connections to my DB decreases. (I've checked the > > performance counters). > > When I do not disable pooling, I do not see the number of connections > > decrease. > > > On 7 nov, 17:35, "Sean Carpenter" <[EMAIL PROTECTED]> wrote: > > > sp_who can't be used to check if the connection is still open since > > ADO.Net > > > connection pooling will actually keep the underlying connection open even > > > after it is closed from user code. You can trust that it's available to > > be > > > used by a different Session, so it is "closed" from the application's > > point > > > of view. > > > Sean Carpenter > > > > On Fri, Nov 7, 2008 at 10:59 AM, FrederikGheysels < > > > > [EMAIL PROTECTED]> wrote: > > > > > On 7 nov, 16:36, "Fabio Maulo" <[EMAIL PROTECTED]> wrote: > > > > > 2008/11/7 FrederikGheysels <[EMAIL PROTECTED]> > > > > > > > I expect that the Session is disconnected after the Commit > > > > > > Transaction, but it is not. The Session is still connected. > > > > > > Trust us ;) > > > > > and don't worry about it. > > > > > > -- > > > > > Fabio Maulo > > > > > Please allow me to be a bit critical :) > > > > > When Ayende says that NH maintains the abstraction that the session > > > > always has an open connection, then this also implies that the > > > > IsConnected property of the ISession should always return true. > > > > (Then, I wonder: what's the use of this property ) ? > > > > > I've also done a little test: > > > > > using( UnitOfWork uow = > > > > UnitOfWorkFactory.Instance.CreateUnitOfWork () ) > > > > { > > > > ISession s = uow.Session; > > > > > Assert.IsTrue (s.IsOpen, "Session is expected to be > > > > open"); > > > > Assert.IsTrue (s.IsConnected, "Session is expected to > > > > be connected"); > > > > Assert.AreEqual > > > > (s.SessionFactory.Settings.ConnectionReleaseMode, > > > > ConnectionReleaseMode.AfterTransaction, > > > > "ConnectionReleaseMode is expected to > > > > be AfterTransaction"); > > > > Assert.AreEqual (s.FlushMode, FlushMode.Auto, > > > > "FlushMode must be Auto"); > > > > > ITransaction tx = s.BeginTransaction > > > > (); > > > > > tx.Commit (); > > > > > Assert.IsFalse (s.IsConnected, "Session should be > > > > disconnected"); > > > > } > > > > > This test fails on the last Assert. > > > > I've also checked the number of connections using the SQL Server > > > > sp_who SP. > > > > From the results of this SP, I learn that the connection to my DB is > > > > kept open when the Transaction has been committed ... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
