Oskar you where right!! according to msdn, by default a pool is created and a connection is opened and kept open by the provider. This is ok as you stated for production, but for my testing it is a problem.
Adding the "Pooling=false" to the connection string in the config file does the job. Many thanx for your help Regards On 17 Ιούλ, 19:42, Oskar Berggren <[email protected]> wrote: > From the sound of it in your original mail it is most likely that your > issue has nothing what so ever to do with NHibernate or your mappings. > Except for your connection string, because that is where you turn off > connection pooling. Should be on in production but may be turned off > for tests if your tests want to e.g. restore databases. Don't remember > the exact syntax, but a googling for sql server connection pooling > should give you the answer. > > Connection pooling causes ADO.NET to keep the underlying SqlConnection > open even after you (or NHibernate) have done Dispose() on the object. > > /Oskar > > 2009/7/17 mantzas <[email protected]>: > > > > > This is my nh configuration file: > > > <?xml version="1.0" encoding="utf-8" ?> > > <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > > > <session-factory> > > <property > > name="connection.provider">NHibernate.Connection.DriverConnectionProvider</ > > property> > > <property > > name="connection.driver_class">NHibernate.Driver.SqlClientDriver</ > > property> > > <property name="connection.connection_string">Data > > Source=server;Initial Catalog=database;User ID=abc;Password=abc</ > > property> > > <property name ="connection.isolation">ReadCommitted</property> > > <property name="default_schema">database.dbo</property> > > <property name="show_sql">true</property> > > <property name="generate_statistics">true</property> > > <property name="format_sql">true</property> > > <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</ > > property> > > <property > > name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, > > NHibernate.ByteCode.LinFu</property> > > <mapping assembly="database.Data.Objects"/> > > </session-factory> > > </hibernate-configuration> > > > I have implemented a unit of work pattern: > > > using (var workUnit = new UnitOfWork()) > > { > > try > > { > > var provider = new ProfessionProvider > > (workUnit.Session); > > > return provider.GetProfessions(); > > } > > catch (HibernateException) > > { > > workUnit.RollbackTransaction(); > > throw; > > } > > } > > > this implments the IDisposable interface. > > In the constructor i get a session from the sessionmanager and begin a > > transaction. > > Disposing: > > > private void Dispose(bool disposing) > > { > > if (!_disposed) > > { > > if (disposing) > > { > > //Dispose of the Transaction Object > > DisposeTransaction(); > > DisposeSession(); > > } > > } > > > _disposed = true; > > } > > > /// <summary> > > /// Disposes the transaction. > > /// </summary> > > private void DisposeTransaction() > > { > > if (Transaction == null) > > { > > return; > > } > > > CommitTransaction(); > > > Transaction.Dispose(); > > } > > > private void DisposeSession() > > { > > CloseSession(); > > Session.Dispose(); > > } > > > private void CloseSession() > > { > > if (Session.IsOpen) > > { > > Session.Close(); > > } > > } > > > Is there something wrong??? > > What do you think??? > > > regards > > > On Jul 17, 3:23 pm, Oskar Berggren <[email protected]> wrote: > >> Read up on connection pooling. This is in ADO.NET and works > >> independently of NHibernate. You might wanna adjust your connection > >> string (for your tests, not production). > > >> /Oskar > > >> 2009/7/17 Fabio Maulo <[email protected]>: > > >> > you are doing something wrong... there isn't a open connection even with > >> > an > >> > open-session. > > >> > 2009/7/17 mantzas <[email protected]> > > >> >> Hi, > > >> >> a quick question about the onnetions that are opened. > > >> >> I reated a singleton for the sessionFatory. I implemented the unit o > >> >> work pattern that gets the session from the fatory and releases it. > > >> >> AFAIK connetions are opened and closed within this context only. > > >> >> I have build a WCF service which is used by the client. > > >> >> I wrote a unit test for this service. > > >> >> In order to revert the database to a known state i used sql server > >> >> snapshots. > > >> >> This is where the tests abort since it cannot restore a database that > >> >> has a active connection. > > >> >> Active connection??? I though there is no active connetion after the > >> >> session closes. > > >> >> Has someone an answer to that???? > > >> >> Thx > > >> > -- > >> > Fabio Maulo --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
