NHibernate MultiThreading方案中的抛出错误

时间:2011-08-09 05:30:31

标签: nhibernate

我的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会话,这也没有多大帮助。

任何人都可以帮我找到解决方案吗?

1 个答案:

答案 0 :(得分:0)

您应该为每个线程创建一个会话。每次生成一个线程时,为它创建一个会话,并在线程的持续时间内保持打开状态。