JiveJdon Community Forums
在线475人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 开源JdonFramework及其应用案例论坛
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 4 回复 / 1
 发表新帖子   回复该主题贴
cats_tiger

悄悄话
发表文章: 189
注册时间: 2003年05月16日 16:58
关于Jdon的CloseSessionInViewFilter 2008年03月25日 16:22 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 osiv(15)      jdon框架(129)     
Spring的OpenSessionInViewFilter导致性能问题早有耳闻,但是这个东东实在方便,所以一直沿用至今,幸好没有遇到性能方面的问题。
但是,老猫我一直对它谨慎提防。
先解释一下Spring的问题,在OpenSessionInViewFilter中,首先try块中打开了Session,然后doFilter执行请求,最后在finally中关闭Session。大体就是这样,这段代码影响阅读的障碍物挺多,什么isSingleSession,Deferred之类的,但基本流程就是这样的。Spring不管3721就打开Session,如果这个时候遇到一点问题,比如网速慢,那么就会导致长时间打开数据库连接,当然也就影响性能了。
CloseSessionInViewFilter稍有不同,它将打开Session的任务交给DAO,好像就是那个HibernateTemplate中调用SessionProvider的时候,然后,Filter中只是负责关闭Session。
使用这两个Filter有一个前提,尤其是OpenSessionInView,一定把UrlMapping设置为*.do或*.jsf之类的,要不,呵呵,一个gif请求都要打开Hibernate...
Banq老大,在这个前提下,我有一个问题。当一个请求到达后,大致的过程是这样的:Filter(Spring打开Session)->Struts->DAO(JDon打开Session)->渲染页面->Filter(关闭Session)。只要Application收到请求,从Filter到Struts/JSF再到Service/DAO应该是非常快的,此时是不是CloseSessionInViewFilter的优势就不明显了?
不管怎样,Banq老大的这个思路还是很让人佩服呀,呵呵。
banq

悄悄话
发表文章: 9482
注册时间: 2002年08月03日 17:08
回复:关于Jdon的CloseSessionInViewFilter 2008年03月25日 17:39 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
多谢肯定,还是不是很明白你的意思。

在复杂系统情况下,使用OpenSessionInViewFilter打开Session可能不一定立即使用,这就会造成Session打开闲置,在一个访问量比较大的情况下,这个危险度非常高,特别是存在事务的情况下,更可能引起死锁,我在平时咨询中碰到很多这样莫名其妙的性能问题,我怀疑这里有一个性能陷阱;Jdon框架的CloseSessionInViewFilter就回避这个问题,能缩短一些打开时间,。

在简单系统下,这两个区别不大。
[该贴被banq于2008-03-25 17:41修改过]
cats_tiger

悄悄话
发表文章: 189
注册时间: 2003年05月16日 16:58
回复:回复:关于Jdon的CloseSessionInViewFilter 2008年03月25日 21:11 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>在简单系统下,这两个区别不大
这就是我的问题。我的意思是,如果Filters定义的顺序合理,URL-Mapping也合适的话,这两个的区别会更小。
[该贴被cats_tiger于2008-03-25 21:13修改过]
oojdon

悄悄话
发表文章: 226
注册时间: 2008年10月07日 22:40
关于Jdon的CloseSessionInViewFilter 2008年11月03日 12:18 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>>使用这两个Filter有一个前提,尤其是OpenSessionInView,一定把UrlMapping设置为*.do或*.jsf之类的,要不,呵呵,一个gif请求都要打开Hibernate...

如果我后端的业务层处理根本就和数据库无关,比如发邮件,OSIV还是会open sesion ,close session?
freeren

悄悄话
发表文章: 69
注册时间: 2007年02月15日 09:39
回复:关于Jdon的CloseSessionInViewFilter 2008年11月04日 11:31 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>>如果我后端的业务层处理根本就和数据库无关,比如发邮件,OSIV还是会open sesion ,close session?

这样的话,这个的确是个问题!
这个主题有 4 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam