We have an ASP.NET application which uses some NHibernate-based dlls. The 
NHibernate version used by those dlls is quite old (1.2.1).

The application usually works fine, but sometimes we find that some 
requests take too long to complete -just for a user, other simultaneous 
users are served in a proper time. Analyzing the trace we received from an 
application named Lucierna, it seems that NHibernate could be behind the 
problem (but it is just a guess, based upon the detected incidents).
Lucierna trace reports the following calls/times:

Nesting level Last called at Execution time
1 void 
DLLApplication.NHibernateInterface.NHibernateSessionModule.context_AcquireRequestState(class
 
System.Object,class S) 7.571 s.
2 class S 
DLLApplication.security.AccessControl.GetAuthCookiePrincipal(class S) 26 ms.
2 void 
DLLApplication.orm.NHibernateMultiSessionManager.RegisterInterceptorOn(class 
System.String,class N) 6.64 s.
3 class N 
DLLApplication.orm.NHibernateMultiSessionManager.GetSessionFrom(class 
System.String,class N) 6.64 s.
4 class N 
DLLApplication.orm.NHibernateMultiSessionManager.GetSessionFactoryFor(class 
System.String) 6.64 s.
5 class N DLLApplication.orm.config.MultiDBConfigurator.Configure(class 
N,class System.String) 2.028 s.
6 instance class N NHibernate.Cfg.Configuration.AddAssembly(class 
System.String) 1.189 s.
7 instance class N NHibernate.Cfg.Configuration.AddAssembly(class S) 1.187 
s.
8 class S NHibernate.Cfg.Configuration.GetAllHbmXmlResourceNames(class S) 1 
ms.
8 instance class N NHibernate.Cfg.Configuration.AddResource(class 
System.String,class S) 692 ms.
9 instance class N NHibernate.Cfg.Configuration.AddInputStream(class 
S,class System.String) 692 ms.
10 instance class N NHibernate.Cfg.Configuration.AddXmlReader(class S,class 
System.String) 680 ms.
11 instance class N NHibernate.Cfg.Configuration.LoadMappingDocument(class 
S,class System.String) 449 ms.
11 instance void NHibernate.Cfg.MappingsQueue.AddDocument(class N) 63 ms.
12 class S NHibernate.Cfg.ClassExtractor.GetClassEntries(class S) 53 ms.
13 class N NHibernate.Util.TypeNameParser.Parse(class System.String,class 
System.String,class System.String) 5 ms.
14 instance class N NHibernate.Util.TypeNameParser.ParseTypeName(class 
System.String,class System.String,class System.String) 3 ms.
15 instance wchar[] 
NHibernate.Util.TypeNameParser.PossiblyEscapedCharacter() 2 ms.
15 instance class System.String 
NHibernate.Util.TypeNameParser.AssemblyName() 1 ms.
12 class I NHibernate.Cfg.MappingsQueueEntry.GetClassNames(class S) 2 ms.
11 instance void NHibernate.Cfg.Configuration.ProcessMappingsQueue() 160 ms.
12 instance class N 
NHibernate.Cfg.MappingsQueue.GetNextAvailableResource() 6 ms.
13 instance void NHibernate.Cfg.MappingsQueue.AddProcessedClassNames(class 
S) 4 ms.
14 instance void NHibernate.Cfg.MappingsQueue.ProcessUnavailableEntries() 3 
ms.
12 instance void NHibernate.Cfg.Configuration.AddValidatedDocument(class 
N) 152 ms.
13 class N NHibernate.Dialect.Dialect.GetDialect(class S) 74 ms.
14 class N NHibernate.Dialect.Dialect.InstantiateDialect(class 
System.String) 71 ms.
15 class S NHibernate.Util.ReflectHelper.ClassForName(class 
System.String) 6 ms.
16 class S NHibernate.Util.ReflectHelper.TypeFromAssembly(class N,bool) 1 
ms.
15 class S 
NHibernate.Util.CollectionHelper.CreateCaseInsensitiveHashtable(class S) 2 
ms.
15 instance void 
NHibernate.Dialect.Function.SQLFunctionTemplate.InitFromTemplate() 2 ms.
15 instance void NHibernate.Dialect.TypeNames.Put(value class S,int32,class 
System.String) 31 ms.
13 void NHibernate.Cfg.HbmBinder.BindRoot(class S,class N) 73 ms.
14 class System.String NHibernate.Cfg.HbmBinder.GetClassTableName(class 
N,class S,class N) 1 ms.
14 void NHibernate.Cfg.HbmBinder.BindSimpleValue(class S,class N,bool,class 
System.String,class N) 7 ms.
15 void NHibernate.Cfg.HbmBinder.BindColumns(class S,class 
N,bool,bool,class System.String,class N) 7 ms.
14 instance void NHibernate.Mapping.SimpleValue.SetTypeByReflection(class 
S,class System.String,class System.String) 29 ms.
15 class N NHibernate.Util.ReflectHelper.ReflectedPropertyType(class 
S,class System.String,class System.String) 29 ms.
16 class S NHibernate.Util.ReflectHelper.ReflectedPropertyClass(class 
S,class System.String,class System.String) 29 ms.
17 class N NHibernate.Util.ReflectHelper.GetGetter(class S,class 
System.String,class System.String) 22 ms.
14 void NHibernate.Cfg.HbmBinder.BindProperty(class S,class N,class N) 4 ms.
14 void NHibernate.Cfg.HbmBinder.MakeIdentifier(class S,class N,class N) 2 
ms.
14 instance void NHibernate.Mapping.PersistentClass.CreatePrimaryKey(class 
N) 10 ms.
14 void NHibernate.Cfg.HbmBinder.PropertiesFromXML(class S,class N,class 
N) 4 ms.
8 instance class N NHibernate.Cfg.Configuration.AddResource(class 
System.String,class S) 381 ms.
9 instance class N NHibernate.Cfg.Configuration.AddInputStream(class 
S,class System.String) 381 ms.
10 instance class N NHibernate.Cfg.Configuration.AddXmlReader(class S,class 
System.String) 381 ms.
11 instance class N NHibernate.Cfg.Configuration.LoadMappingDocument(class 
S,class System.String) 1 ms.
11 instance void NHibernate.Cfg.Configuration.ProcessMappingsQueue() 380 ms.
12 instance void NHibernate.Cfg.Configuration.AddValidatedDocument(class 
N) 380 ms.
13 void NHibernate.Cfg.HbmBinder.BindRoot(class S,class N) 380 ms.
14 void NHibernate.Cfg.HbmBinder.PropertiesFromXML(class S,class N,class 
N) 380 ms.
15 void NHibernate.Cfg.HbmBinder.BindManyToOne(class S,class N,class 
System.String,bool,class N) 8 ms.
16 void NHibernate.Cfg.HbmBinder.InitOuterJoinFetchSetting(class S,class 
N) 1 ms.
16 void NHibernate.Cfg.HbmBinder.InitLaziness(class S,class N,class 
N,bool) 1 ms.
16 class System.String NHibernate.Cfg.HbmBinder.GetEntityName(class S,class 
N) 1 ms.
17 class System.String NHibernate.Cfg.HbmBinder.GetClassName(class S,class 
N) 1 ms.
16 class N NHibernate.Type.TypeFactory.ManyToOne(class S,class 
System.String,bool,bool) 1 ms.
15 instance class N CollectionTypeSet.Create(class S,class 
System.String,class System.String,class N,class S,class N) 349 ms.
16 void NHibernate.Cfg.HbmBinder.BindCollection(class S,class N,class 
System.String,class System.String,class S,class N) 343 ms.
17 class S NHibernate.Cfg.HbmBinder.GetPropertyType(class S,class N,class 
S,class System.String) 1 ms.
6 instance class N NHibernate.Cfg.Configuration.AddAssembly(class 
System.String) 836 ms.
7 instance class N NHibernate.Cfg.Configuration.AddAssembly(class S) 836 ms.
5 instance class N NHibernate.Cfg.Configuration.BuildSessionFactory() 4.61 
s.
6 instance void NHibernate.Cfg.Configuration.SecondPassCompile() 7 ms.
6 instance void NHibernate.Cfg.Configuration.Validate() 8 ms.
6 class N 
NHibernate.Persister.PersisterFactory.CreateCollectionPersister(class 
N,class N,class N) 1.02 s.
7 instance class N 
NHibernate.Persister.Collection.OneToManyPersister.GenerateInsertRowString() 
1.014 
s.
8 instance class N NHibernate.SqlCommand.SqlUpdateBuilder.AddColumns(class 
System.String[],class N) 964 ms.
8 instance class N 
NHibernate.SqlCommand.SqlUpdateBuilder.SetIdentityColumn(class 
System.String[],class N) 3 ms.
9 instance class N NHibernate.SqlCommand.SqlBaseBuilder.ToWhereString(class 
System.String[]) 2 ms.
10 instance class N 
NHibernate.SqlCommand.SqlBaseBuilder.ToWhereString(class 
System.String[],class System.String) 2 ms.
11 instance class N 
NHibernate.SqlCommand.SqlBaseBuilder.ToWhereString(class 
System.String,class System.String[],class System.String) 2 ms.
12 instance class N NHibernate.SqlCommand.SqlStringBuilder.ToSqlString() 1 
ms.
9 instance class N[] NHibernate.Type.ManyToOneType.SqlTypes(class N) 1 ms.
10 instance class N NHibernate.Type.ManyToOneType.GetReferencedType(class 
N) 1 ms.
8 instance class N 
NHibernate.SqlCommand.SqlUpdateBuilder.ToSqlCommandInfo() 11 ms.
9 instance class N NHibernate.SqlCommand.SqlUpdateBuilder.ToSqlString() 9 
ms.
6 class N 
NHibernate.Persister.PersisterFactory.CreateCollectionPersister(class 
N,class N,class N) 248 ms.
7 instance class N 
NHibernate.Persister.Collection.BasicCollectionPersister.GenerateInsertRowString()
 238 
ms.
8 instance class N NHibernate.SqlCommand.SqlInsertBuilder.AddColumn(class 
System.String[],class N) 1 ms.
8 instance class N 
NHibernate.SqlCommand.SqlInsertBuilder.ToSqlCommandInfo() 237 ms.
7 instance class N 
NHibernate.Persister.Collection.BasicCollectionPersister.GenerateDeleteRowString()
 4 
ms.
8 instance class N 
NHibernate.SqlCommand.SqlDeleteBuilder.ToSqlCommandInfo() 2 ms.
9 instance class N NHibernate.SqlCommand.SqlDeleteBuilder.ToSqlString() 1 
ms.
7 instance class N 
NHibernate.Persister.Collection.BasicCollectionPersister.GenerateDeleteString() 
1 
ms.
6 instance void 
NHibernate.Persister.Entity.AbstractEntityPersister.PostInstantiate() 629 
ms.
7 instance class N 
NHibernate.Persister.Entity.SingleTableEntityPersister.GenerateInsertString(bool,bool[],int32)
 2 
ms.
7 instance class N 
NHibernate.Persister.Entity.AbstractEntityPersister.GenerateUpdateString(bool[],int32,class
 
System.Object[]) 1 ms.
7 instance class N 
NHibernate.Persister.Entity.AbstractEntityPersister.GenerateIdentityInsertString(bool[])
 1 
ms.
7 instance class N 
NHibernate.Persister.Entity.AbstractEntityPersister.GenerateSnapshotSelectString()
 522 
ms.
8 class System.String NHibernate.Util.StringHelper.GenerateAlias(class 
System.String) 3 ms.
9 class System.String NHibernate.Util.StringHelper.GenerateAliasRoot(class 
System.String) 2 ms.
10 class System.String 
NHibernate.Util.StringHelper.UnqualifyEntityName(class System.String) 1 ms.
11 class System.String NHibernate.Util.StringHelper.Unqualify(class 
System.String) 1 ms.
8 instance class System.String 
NHibernate.Persister.Entity.AbstractEntityPersister.ConcretePropertySelectFragment(class
 
System.String,bool[]) 5 ms.
9 instance class N NHibernate.SqlCommand.SelectFragment.AddFormulas(class 
System.String,class System.String[],class System.String[]) 1 ms.
10 instance class N NHibernate.SqlCommand.SelectFragment.AddFormula(class 
System.String,class System.String,class System.String) 1 ms.
9 instance class System.String 
NHibernate.SqlCommand.SelectFragment.ToSqlStringFragment() 1 ms.
8 class N NHibernate.SqlCommand.SqlString.op_Addition(class N,class N) 54 
ms.
9 instance class N NHibernate.SqlCommand.SqlString.Append(class N) 53 ms.
8 class N NHibernate.Util.StringHelper.Join(class N,class S) 1 ms.
8 instance class N 
NHibernate.SqlCommand.SqlSelectBuilder.SetFromClause(class N) 30 ms.
7 instance class N 
NHibernate.Persister.Entity.AbstractEntityPersister.GenerateSelectVersionString()
 10 
ms.
7 instance void 
NHibernate.Persister.Entity.AbstractEntityPersister.CreateLoaders() 86 ms.
8 instance class N 
NHibernate.Persister.Entity.AbstractEntityPersister.CreateEntityLoader(class 
N) 86 ms.
9 instance class N 
NHibernate.Persister.Entity.AbstractEntityPersister.CreateEntityLoader(class 
N,class S) 86 ms.
10 class N 
NHibernate.Loader.Entity.BatchingEntityLoader.CreateBatchingEntityLoader(class 
N,int32,class N,class N,class S) 86 ms.
11 instance class System.String 
NHibernate.Loader.JoinWalker.GenerateRootAlias(class System.String) 7 ms.
11 instance class System.String 
NHibernate.Persister.Entity.AbstractEntityPersister.FilterFragment(class 
System.String,class S) 4 ms.
12 instance class System.String 
NHibernate.Persister.Entity.SingleTableEntityPersister.FilterFragment(class 
System.String) 2 ms.
11 instance void NHibernate.Loader.AbstractEntityJoinWalker.InitAll(class 
N,class System.String,class N) 42 ms.
12 instance void NHibernate.Loader.JoinWalker.WalkEntityTree(class N,class 
System.String,class System.String,int32) 1 ms.
12 instance void NHibernate.Loader.JoinWalker.InitPersisters(class S,class 
N) 13 ms.
13 int32 NHibernate.Loader.JoinWalker.CountEntityPersisters(class S) 1 ms.
13 int32 NHibernate.Loader.JoinWalker.CountCollectionPersisters(class S) 2 
ms.
12 instance void 
NHibernate.Loader.AbstractEntityJoinWalker.InitStatementString(class 
System.String,class N,class System.String,class System.String,class N) 22 
ms.
13 instance class System.String 
NHibernate.Persister.Entity.AbstractEntityPersister.SelectFragment(class 
System.String,class System.String) 12 ms.
14 instance class System.String 
NHibernate.Persister.Entity.AbstractEntityPersister.IdentifierSelectFragment(class
 
System.String,class System.String) 9 ms.
11 instance void NHibernate.Loader.BasicLoader.PostInstantiate() 10 ms.
12 instance class System.String[][] 
NHibernate.Loader.DefaultEntityAliases.GetSuffixedPropertyAliases(class 
N) 6 ms.
13 instance class System.String[] 
NHibernate.Loader.DefaultEntityAliases.GetPropertyAliases(class N,int32) 6 
ms.
14 instance class System.String[] 
NHibernate.Persister.Entity.AbstractEntityPersister.GetPropertyAliases(class 
System.String,int32) 6 ms.
15 instance class System.String[] 
NHibernate.SqlCommand.Alias.ToUnquotedAliasStrings(class 
System.String[],class N) 5 ms.
16 instance class System.String 
NHibernate.SqlCommand.Alias.ToUnquotedAliasString(class System.String,class 
N) 3 ms.
6 instance void 
NHibernate.Persister.Entity.AbstractEntityPersister.PostInstantiate() 1.59 
s.
7 instance void 
NHibernate.Persister.Entity.AbstractEntityPersister.CreateLoaders() 1.59 s.
2 void 
DLLApplication.orm.NHibernateMultiSessionManager.BeginTransactionOn(class 
System.String,value class S) 739 ms.
3 instance class N NHibernate.Impl.SessionImpl.BeginTransaction(value class 
S) 739 ms.
4 instance class N NHibernate.Impl.ConnectionManager.BeginTransaction(value 
class S) 739 ms.
5 instance void NHibernate.Transaction.AdoTransaction.Begin(value class 
S) 739 ms.
6 instance class S NHibernate.Impl.ConnectionManager.GetConnection() 738 ms.
7 instance class S NHibernate.Impl.SessionFactoryImpl.OpenConnection() 738 
ms.
8 instance class S 
NHibernate.Connection.DriverConnectionProvider.GetConnection() 738 ms.
2 void 
DLLApplication.orm.NHibernateMultiSessionManager.BeginTransactionOn(class 
System.String,value class S) 166 ms.
3 instance class N NHibernate.Impl.SessionImpl.BeginTransaction(value class 
S) 166 ms.
4 instance class N NHibernate.Impl.ConnectionManager.BeginTransaction(value 
class S) 166 ms.
5 instance void NHibernate.Transaction.AdoTransaction.Begin(value class 
S) 166 ms.
6 instance class S NHibernate.Impl.ConnectionManager.GetConnection() 164 ms.
7 instance class S NHibernate.Impl.SessionFactoryImpl.OpenConnection() 164 
ms.
8 instance class S 
NHibernate.Connection.DriverConnectionProvider.GetConnection() 164 ms.
Could you provide any assistance to find what the problem could be?
 
Thanks in advance.

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to