用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
jacklondon的公告
请大家关注开源 J2EE 框架 VelocityWeb <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-5907003-2"); pageTracker._trackPageview(); </script>
文章分类
软件技术大全
codeproject
sourceforge
存档

原创  解决一个 Websphere 上导致 JVM 崩溃的 bug 收藏

最近在项目中解决了一个很奇怪的 Bug.
项目中使用  IBM Websphere 5.0.2.7, JDK 1.3.1, 每天都有一次服务器 JVM 崩溃,非常奇怪。
同样的代码,同样的数据库数据,在开发环境下面就很好。
经过两天的调试和增加大量的 log (使用 log4j),逐步逼近问题的根源。为了防止 JVM 崩溃的时候, log4j 还有 log 放在缓冲内存中没有写到文件,还花了很多时间才搞定。
结果发现是以下代码导致,变量名我换掉了,这里只是示例:
addToList(new long[] { long1, long2, long3, long4}, contList);

这是一个数组初始化代码,编译无误,应该是符合 JDK 1.3 的语法的。执行次数在 10 次左右还没有问题,次数多了就会导致服务器 JVM 崩溃。修改成如下格式:
long[] data = new long[4];
data[0] = long1;
data[1] = long2;
data[2] = long3;
data[3] = long4;
addToList(data, contList);

然后问题就解决了。非常莫名其妙的问题。有趣的 bug.

发表于 @ 2006年09月06日 12:28:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:OpenCms 使用初步印象 | 新一篇:使用Apache 反向代理功能连接 Tomcat

  • 发表评论
  • 评论内容:
  •  
Copyright © jacklondon
Powered by CSDN Blog