一次OSIV调试经历
2009-11-27 16:43
417 查看
使用nHibernate有一段时间了,但一直没有使用它的延迟加载机制,究其根本大概源于刚接触nHibernate的失败调试经历——因为总是看到诸如“Could not initialize proxy - the owning Session was closed.”或者线程没有绑定Session之类的异常:
<appSettings>
<!--SessionFactory-->
<add key="Spring.Data.NHibernate.Support.OpenSessionInViewModule.SessionFactoryObjectName" value="HibernateSessionFactory"/>
</appSettings>
<httpModules>
<!--OpenSessionInView-->
<add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate21"/>
</httpModules>
五、在Mvc2站点中添加一个View,取一个拥有关联集合子对象的数据列表(如下图,ARTIST对象有一个ALBUMS关联对象,它是ALBUM对象的集合,一对多):
public class SpringControllerFactory : IControllerFactory
SpringControllerFactory.cs
WebApplicationContext configContext =
ContextRegistry.GetContext() as WebApplicationContext;
十四、至此,OSIV成功覆盖整个mvc应用。凡事有利弊,在java社区会有这样的讨论:
“open session in view 在访问量很大的时候,容易造成页面假死现象”
“因为osiv会在每次请求的过程中占用一个session,如果这个请求过程太长,session就无法释放了。可以在tomcat前端加一个apache,讲网速太慢的请求隔离掉。”
也许在这样的时候,一个好的网络运维,比你吭哧更管用 :)
<appSettings>
<!--SessionFactory-->
<add key="Spring.Data.NHibernate.Support.OpenSessionInViewModule.SessionFactoryObjectName" value="HibernateSessionFactory"/>
</appSettings>
<httpModules>
<!--OpenSessionInView-->
<add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate21"/>
</httpModules>
五、在Mvc2站点中添加一个View,取一个拥有关联集合子对象的数据列表(如下图,ARTIST对象有一个ALBUMS关联对象,它是ALBUM对象的集合,一对多):
public class SpringControllerFactory : IControllerFactory
SpringControllerFactory.cs
WebApplicationContext configContext =
ContextRegistry.GetContext() as WebApplicationContext;
十四、至此,OSIV成功覆盖整个mvc应用。凡事有利弊,在java社区会有这样的讨论:
“open session in view 在访问量很大的时候,容易造成页面假死现象”
“因为osiv会在每次请求的过程中占用一个session,如果这个请求过程太长,session就无法释放了。可以在tomcat前端加一个apache,讲网速太慢的请求隔离掉。”
也许在这样的时候,一个好的网络运维,比你吭哧更管用 :)
相关文章推荐
- geotrellis使用(七)记录一次惨痛的bug调试经历以及求DEM坡度实践
- 一次Windows CE下调试内存泄露的经历
- 一次SSIS Package的调试经历
- 一次难忘的JVM内存调试经历(CUDA+Opencv+JNI+Storm)
- 一次SSIS Package的调试经历
- 记一次I2S调试经历
- 一次调试无法打印日志问题经历
- 一次SSIS Package的调试经历
- geotrellis使用(十二)再记录一次惨痛的伪BUG调试经历(数据导入以及读取瓦片)
- 记一次PHP“Segmentation fault”调试经历
- 一次system hang的调试经历
- 一次服务器调试经历
- 一次难忘的调试经历
- 一次痛苦的server调试经历
- 一次SSIS Package的调试经历
- 一次LoadLibrary调用失败的调试经历
- 一次曲折的bug调试经历
- 一次难忘的调试经历
- 记一次内存释放调试经历
- 记一次痛苦的Django报错调试经历: