我的Nhibernate代码经过负载测试时出现问题。我正在使用Nhibernate 3.1版本,并且通过WCF服务公开了Nhibernate用法。它在单个线程场景中正常工作,当它受到负载测试时,它会崩溃抛出多个错误。 以下是负载测试期间抛出的一些错误。
1)NHibernate.DuplicateMappingException: Duplicate class/entity mapping
2)System.ObjectDisposedException: Session is closed!
Object name: 'ISession'. at NHibernate.Impl.AbstractSessionImpl.ErrorIfClosed()
at NHibernate.Impl.AbstractSessionImpl.CheckAndUpdateSessionStatus()
at NHibernate.Impl.SessionImpl.get_Batcher()
是因为我跨多个线程跨越单个会话吗?
我使用了Contextual会话,这也没有多大帮助。
任何人都可以帮我找到解决方案吗?
答案 0 :(得分:0)
您应该为每个线程创建一个会话。每次生成一个线程时,为它创建一个会话,并在线程的持续时间内保持打开状态。