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.
