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
-~----------~----~----~----~------~----~------~--~---

Reply via email to