I use the class below to access mysql. after a few queries, the application pool of IIS 7.5 increases to around 1 GB of RAM. I checked that the dispose method of the class is always executed. Why is this happening? And 'normal connections mysql remain in 'sleep' ?
Thank you JK public class RepositoryBase: IDisposable { protected ISession _session = null; protected ITransaction _transaction = null; public Boolean extension_transaction = false; public RepositoryBase(string connectionString) { _session = NHibernateMultipleHelper.GetCurrentSession(connectionString); _transaction = _session.BeginTransaction(); } public RepositoryBase(ISession session) { _session = session; } #region Transaction and Session Management Methods public void BeginTransaction() { _transaction = _session.BeginTransaction(); } public void CommitTransaction() { // _transaction will be replaced with a new transaction // by NHibernate, but we will close to keep a consistent state. _transaction.Commit(); CloseTransaction(); } public virtual object GetById(Type objType, object objId) { return _session.Get(objType, objId); } public void RollbackTransaction() { // _session must be closed and disposed after a transaction // rollback to keep a consistent state. _transaction.Rollback(); CloseTransaction(); CloseSession(); } private void CloseTransaction() { _transaction.Dispose(); _transaction = null; } private void CloseSession() { _session.Clear(); _session.Close(); _session.Dispose(); _session = null; } #endregion #region IRepository Members public virtual IQuery getSQLQuerySession(ref IQuery query, string sql) { return _session.CreateSQLQuery(sql); } public virtual IQuery getQuerySession(ref IQuery query, string sql) { return _session.CreateQuery(sql); } public virtual IQuery setQuerySession(string sql) { return _session.CreateQuery(sql); } public virtual void Save(object obj) { _session.SaveOrUpdate(obj); } public virtual void Persist(object obj) { _session.Persist(obj); } public virtual void Delete(object obj) { _session.Delete(obj); } public virtual void Evict(object obj) { _session.Evict(obj); } #endregion #region IDisposable Members public void Dispose() { if (_transaction != null) { // Commit transaction by default, unless user explicitly rolls it back. // To rollback transaction by default, unless user explicitly commits, // comment out the line below. CommitTransaction(); } if (_session != null) { _session.Flush(); // commit session transactions CloseSession(); } } #endregion } -- You received this message because you are subscribed to the Google Groups "nhusers" group. To unsubscribe from this group and stop receiving emails from it, send an email to nhusers+unsubscr...@googlegroups.com. To post to this group, send email to nhusers@googlegroups.com. Visit this group at http://groups.google.com/group/nhusers. For more options, visit https://groups.google.com/d/optout.