NHibernate的数据库连接在负载下失败

我在想,如果这似乎熟悉的任何经验NHibernate的开发者或者如果有人可以给我一个想法,从哪里开始,试图解决这个问题:

我继承了NHibernate的网站使用NHibernate 0.6和.NET Remoting来驻留在数据库服务器上的DAL层写在ASP.NET 1.1。 我一直在试图将它升级到ASP.NET 3.5和NHibernate 1.2.1.4。

我更换了.NET远程设置有直接数据库连接,一切工作正常,直到该网站得到了一些负载下,然后NHibernate的电话开始出现间歇性故障引发异常:ADOException无法执行查询,其次是NHibernate的生成的SQL语句。

与此错误给出的堆栈跟踪是:NHibernate.Loader.Loader.LoadEntity(ISessionImplementor会议,对象ID,ITYPE identifierType,对象optionalObject,类型optionalEntityName,对象optionalIdentifier,IEntityPersister持留)

在NHibernate.Loader.Entity.AbstractEntityLoader.Load(ISessionImplementor会议,对象ID,对象optionalObject,对象optionalId)

在NHibernate.Loader.Entity.AbstractEntityLoader.Load(对象ID,对象optionalObject,ISessionImplementor会话)

在NHibernate.Persister.Entity.AbstractEntityPersister.Load(对象ID,对象optionalObject,lockmode可以lockmode可以,ISessionImplementor会话)

在NHibernate.Impl.SessionImpl.DoLoad(类型theClass描述,对象ID,对象optionalObject,lockmode可以lockmode可以,布尔checkDeleted)

在NHibernate.Impl.SessionImpl.DoLoadByClass(类型clazz中,对象ID,布尔checkDeleted,布尔allowProxyCreation)

在NHibernate.Impl.SessionImpl.Load(类型clazz中,对象ID)

谢谢!

--------------解决方案-------------

问题是,非线程安全的NHibernate会话工厂。 更改项目使用HTTP模块每个请求使用一个NHibernate的会议(并确保不开一个会议上非。如* X档案性诉求),一切都很好。

  • 验证您的连接设置。
  • 如果可以的话,缓存中的对象尽可能多的,你可以避开殴打服务器
  • 请确保你有你的表建立索引...这是一个工程浩大
  • 请确保log4net的的日志记录被警告/错误让你不写一本百科全书的日志
分类:asp.net 时间:2012-01-01 人气:0
本文关键词: asp.net,NHibernate的
分享到:

相关文章

  • asp.net NHibernate的会议同治 2012-10-29

    我实现每reqest asp.net会话非标准场景. 我的asp.net模块: public class NHibernateSessionModule : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.BeginRequest += context_BeginRequest; context.EndRequest += context_EndRequest;

  • 在ASP .NET NHibernate的映射 2014-06-25

    我在NHibernate.I一个新手现在面临的映射问题file.I有2表Fetures和优先级. 功能FEATUREID(PK),FeatureName,PriorityID(FK)先决PriorityID(PK),PriorityName 我想绑定的网格,以功能表,但是却电网应该包含PriorityName而不是PriorityID. 我试图一到1,多对1和袋. 请帮助我如何能写映射文件,这样我可以得到PriorityName在要素类特别PriorityID. 我知道这是一个非常简单的ques

  • ASP.NET + NHibernate的对象重新绑定到会话 2014-09-09

    我想我存储在ASP.NET中Session对象. 这个对象有一定的延迟加载特性. 当我做回发到我的网页,并从会话我的对象,这个属性抛出LazyInitializationException中. 我可以重新绑定这个对象为新创建NHibernate的会议上检索该属性或我要创建会话并获得每次请求此对象吗? --------------解决方案------------- 你需要预先抓取这些对象在你发送的SQL查询,以便它们填充并从下一个请求的会话访问的时刻. 一旦用于检索父对象的会话关闭则无法获取他们了

  • 升级后Asp.net NHibernate的CPU性能 2012-12-09

    任何人都有CPU峰值切换到NHibernate的后? 我们大约2年前转而使用NHibernate的. 从那时起,我们已经与问题使用CPU近60服务器中运行 - 80.我们还与服务器内存不足的问题. 我们促成一直被告知要优化我们的查询. 我们那时只取得有限的成功. 它不是直到我最近从NHibernate的2.1升级到3.2,我们终于看到了CPU中的改进. 它从一个60%的平均下降到约30%. 我很惊讶,我被很多人谁认为自己的专家,升级的NHibernate如果有的话都只会产生有限的改进告诉记者.

  • NullReferenceExpection在集成测试项目为一个asp.net NHibernate的解决方案 2014-10-19

    我有一个.NET 3.5的解决方案,一个asp.net(网站)项目fluentnhibernate,它的测试项目(类库项目).i've引用的测试项目,并与所有fluentnhibernate / nhibenate的dll的asp.net项目. 我不能理解的是,在一个Web窗体(从浏览器中点击)的运行让我们说Test.aspx的,模式的建设是全成和我能看到表在我的数据库. 在这里我呼吁Test.aspx.cs方法 public partial class Test : System.Web.UI

  • 没有人有经验创建偶尔连接浏览器应用程序与NHibernate? 2013-01-30

    我们需要使我们的企业ASP.NET/NHibernate基于浏览器的应用程序可以在连接到或从客户的服务器断开连接的功能. 有没有人这样做呢? 如果是这样,你是怎么做到的呢? (技术,架构等) 背景: 我们开发和销售用于建筑领域的人员进入时间表信息的企业基于浏览器的应用程序. 目前,它要求在客户的办公室到服务器的连接回来,我们希望没有无线上网可用来构建应用程序对这些客户端的偶尔连接的版本. 我们的应用程序是使用NHibernate的O / R映射的ASP.NET应用程序. 作为一个微软的商店,微软

  • 如何实现多个数据库存储库模式 2013-03-19

    我们目前有两个演示项目(经典的ASP和ASP.NET,它使用了"与ASP.NET NHibernate的最佳实践"(前身或尖锐的体系结构).我们现在重写所有传统的ASP与Silverlight + WCF(也许RIA服务) . 我们有以下数据库体系结构:*一个全局数据的数据库 - 包含用户和项目元信息*每个项目都有自己的数据库来存储特定项目的信息 - 相同的模式 我们能够破解一下,以便多个数据库工作,因为ASP.NET"与ASP.NET NHibernate的最佳实践&quo

  • 键入从二级缓存负载失配 2014-06-25

    我有一个聚集的Web应用程序在asp.net + NHibernate的,在Memcached的依赖作为其二级缓存提供商运行. 一切都运行良好几个月,今天一些查询开始加载从高速缓存L2实体时候给一个类型不匹配错误. 重新启动缓存出现来解决问题,但几分钟后,返回错误. 眼下缓存被禁用,一切工作正常. 任何线索表示赞赏. 堆栈跟踪: System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledExcept

  • NH要求每学期 - “会话被关闭!” 2014-12-20

    NHibernate的版本:2.1 我使用的是什么似乎是一个相当标准的HttpModule方法在ASP.NET + NHibernate的应用程序中实现每个请求的会话. 我想利用WebSessionContext但它似乎并没有被正确地工作. 具体来说,一切正常了出色的应用程序的第一个请求,但其他请求导致"会话被关闭!" 例外的会话中使用的任何时间. 重置应用程序池允许另一个请求成功,那么更多的"会话被关闭!". 有几件运动,但我不知道有足够的了解的情况下是如何设法缩

  • ASP.net的NHibernate没有发​​现持留 2012-01-02

    我已经创建了一个ASP.net 4.0的项目,我想使用NHibernate的连接到位于在我的本地我的MySQL数据库. 但由于这是新的我,我跟着指南(链接) 最需要的解决方案嵌入到XML文件,但我不知道该怎么做,在一个ASP项目. 而且我也有描述所有的东西,也下载了该项目,但现在我有以下错误: No Persister for: MediaCatalog.Model.Movie 在此行中出现的错误: ISession.SaveOrUpdate(movie); 堆栈跟踪: 在NHibernate.

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.286 (s). 10 q(s)