选择显示字体大小

j2ee疑难解决实例

best story i 

 system.out.println("total memory is: " + java.lang.runtime.getruntime().totalmemory() / 1024);
  system.out.println("free memory is: " + java.lang.runtime.getruntime().freememory() / 1024);


  有一天,一家客户要找东软麻烦,说我们的软件不好用,总死机。weblogic错误提示好象是内存分配请求失败。
  --东软的应用系统从研发环境搬到使用环境去,一开始总要出点毛病,pc机上的tomcat终归不能跟服务器上的weblogic比啊。

  监理公司打上门来了,我和一个java天师一起受理这个案子。(java天师就是洞察java心髓的技术大师,不是精通java命令语法、熟练ide工具用法的程序员,不是编码工,以下同此义。)
  开发主力亲自过来搭建了演示环境,我们测试了一下,没有出现同等错误。操作系统是不同的unix类型,因此数据库也是不同的版本。别的地方都一样啊。
  天师用java.lang.runtime.getruntime().totalmemory()和freememory()函数得到jvm的实际分配量和使用量,发到前线去测了一下,发现虽然启动weblogic server指定了大内存参数,实际运行时,jvm没有得到这么多内存。

  现在找到了问题,是weblogic没有打够补丁!
  案子结束,我们通知前线去索要weblogicunix os的最新补丁,现在该东软发飙了。

best story ii
  
system.out.println("the caller is " + sun.reflect.reflection.getcallerclass(0));
  system.out.println("the caller is " + sun.reflect.reflection.getcallerclass(1));
  system.out.println("the caller is " + sun.reflect.reflection.getcallerclass(2)); //足矣。


  这是我们自己的故事,nou发布后,一切表现如常,有一次,突然发现数据库连接池行为异常,不能正确分配新的连接。以前做压力测试、暴力测试都没有漏过一次啊?!
  为了查错,我们想知道是那些程序访问了公共的数据库访问bean。调用的地方太多,只能在bean里面加代码来实现调用者的报告了,用什么代码呢?
  我们在水母smth.org上发了一个提问,半小时内就有了一个有价值的回答,提醒我们用sun.reflect.reflection.getcallerclass(int i),参数随便,0,1,2,3都可以。我们试了,果然能汇报,0是getcallerclass自身,1是bean自身,2就应该是bean的调用方,3不稳定。这个函数好象不能准确的报告所有的调用层。对我们来说,能有2好用就可以了。
  我们在程序上依然没有找到错误,vaja用了一个晚上排除了代码有问题的可能性。
  最后我们把weblogic的连接池的健壮性探测开关都打开,错误排除了。

best story iii  
   接着上一个故事,我们又调一个系统,这次是kevin的struts框架的程序搬家失败了,不能在weblogic上用。读applicationresources.properties文件失败,我们在applicationresources.properties文件里改了各种可能,都不行。
  我们改用struts范例,部署也不成功。
  我们换了一台服务器,范例部署成功了,而业务程序部署依然错误。
  改程序吧,kevin改了几次,没效果。
  我们能判定的是:weblogic版本对应用系统的表现有影响。
  kevin和离岛狂人一起比较了weblogic的版本,发现不能部署struts范例的系统是根本没补丁的。有补丁也是sp2。
  安装sp4?

  在大连的网管没给我们ftp权限,三天后,在沈阳,从java天师那里得到了sp4,回来装上便解决问题。

一点经验:
  调试问题,解决问题,关键在于分析,不在于编码快。
  光有j2sdk,jspservlet的知识和开发工具的知识,还是不够,要懂得系统运转的机理,尽量分解错误,定位错误,缩小错误范围,还可以通过各种实验来排除一些可能,形成一些有助于调试的初步结论。
  这是trouble shooting的基本思想。
  进一步,要分清楚是在研究环境还是现场环境做动作,在现场做事情另外有一些规则,以后再谈。


关于作者
kevin, java忠实的支持者,从事java开发和mvc研究.可以点击http://www.matrix.org.cn/user_view.asp?username=xiaoyao查看作者信息


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons