惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
博客园 - 【当耐特】
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Fortinet All Blogs
Y
Y Combinator Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
B
Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理

博客园 - YCOE

MongoDB异常关闭引起的CPU占用 linux php 安装openssl备忘 yum Segmentation fault 错误处理 storytlr -- 安装体验 FullCalendar的二次开发、扩展 记一次笔记本CPU性能骤降 [原创]狂想--QQ构架 [原创]基于jquery.Jcrop的头像编辑器 [原创][C#] 如何将String类型转换成任意基本类型 [原创]Annotation之ElementType.PACKAGE 短信切割算法 Log4net的使用 C# Unrecognized configuration section system.serviceModel 发现Google浏览器(Chrome)的一个JavaScript Bug [原创]DWR+OSGi整合v2.0 [原创]DWR与OSGi的整合 [转载]使用java.text包格式化数字和日期 Hibernate merge方法 MySQL数据库使用Innodb数据库类型(工具生成Hibernate+Spring代码)
DWR死锁问题解决
YCOE · 2008-03-27 · via 博客园 - YCOE

  近期,在一个项目中大量使用DWR,但是,在上线不了多久以后,就频繁出现死机问题。
  经过多番排查(使用YourKit),终于将问题锁定在死锁问题上,并定位在DWR的org.directwebremoting.impl.DefaultScriptSessionManager.invalidate方法上。
  经过Google,找到了官方的Bug跟踪:http://getahead.org/bugs/browse/DWR-60
  根据官方的说法,此Bug将在2.0.rc4 版本里解决
  于是下了一个最近的,2.1版本,但是恶梦继续着...
  死锁问题依然存在,没有一点减缓的意思
  于是尝试采纳Scott Rankin的意见:
修改源码The easist thing I can see to do is to move the for loop at the end of checkTimeouts() inside the synchronized block. That way it'd be guaranteed not to deadlock.

  这一修改,曾经让我安心过三天,但是恶梦,依然继续着...
  问题已经出现近两个月了,一点头绪都没有...
  在即将绝望之际,同事一次乱翻文件夹,突然打开了Tomcat/webapps/.../WEB-INF/lib
  一个dwr.jar包孤零零地呆在那里,顿时,一个感觉从心里飞过。当即把这个dwr.jar删掉

  一周过去了,两周过去了,终于迎来了我期望已久的稳定

  原因:classpath中存在两个dwr.jar包,导致dwr在繁忙的时候会引用另一个,在上下文中存在两个实例对象。
  在DWR中大量使用了同步,死锁就理所当然的啦。