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

推荐订阅源

WordPress大学
WordPress大学
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
博客园 - 司徒正美
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
D
Docker
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
腾讯CDC
T
The Blog of Author Tim Ferriss
小众软件
小众软件
U
Unit 42
T
Tailwind CSS Blog

博客园 - 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中大量使用了同步,死锁就理所当然的啦。