帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
J2EE疑难解决实例
作者:佚名 发布时间:2005-04-02 来源:不详
 
  J2EE疑难解决实例                                                         
  作者:xiaoyao原创 发文时间:2003.10.22                     
                                                                               
  Best Story I


  System.out.println(&
quot;total memory is: "

  + java.lang.Runtime.
getRuntime().totalMemory() /
1024);

  System.out.println(&
quot;free memory is: "
  +java.lang.Runtime.getRuntime().
freeMemory() / 1024);
                                                                               
  有一天,一家客户要找东软麻烦,说
是内存分配请求失败。
我们的软件不好用,总死机。weblogic错误提示好象


  --东软的应用系统从
终归不能跟服务器上的webl
研发环境搬到使用环境去,一开
ogic比啊。
始总要出点毛病,PC机上的tomcat


  监理公司打上门来了,我和一个java
髓的技术大师,不是精通java命令语法、
义。)
天师一起受理这个案子。(java天师就是洞察java心
熟练ide工具用法的程序员,不是编码工,以下同此


  开发主力亲自过来搭建
同的unix类型,因此数据库
了演示环境,我们测试了一下,
也是不同的版本。别的地方都一
没有出现同等错误。操作系统是不
样啊。

  天师用java.lang.Runt
实际分配量和使用量,发到
数,实际运行时,jvm没有
ime.getRuntime().totalMemory
前线去测了一下,发现虽然启动
得到这么多内存。
()和freeMemory()函数得到jvm的
Weblogic server指定了大内存参


  现在找到了问题,是weblogic没有打够补丁!                             

  案子结束,我们通知前
线去索要weblogic和unix OS的
最新补丁,现在该东软发飙了。

  Best Story II


  System.out.println("the cal
ler is "
  + sun.reflect.Reflection.getCall
erClass(0));

  System.out.println(&
quot;the caller is "

  +sun.reflect.Reflect
ion.getCallerClass(1));
  System.out.println("the cal
ler is "

  +sun.reflect.Reflect
ion.getCallerClass(2));
                                                                               
  这是我们自己的故事,
异常,不能正确分配新的连
NOU发布后,一切表现如常,有
接。以前做压力测试、暴力测试
一次,突然发现数据库连接池行为
都没有漏过一次啊?!

  为了查错,我们想知道是那些程序访
在bean里面加代码来实现调用者的报告了
问了公共的数据库访问bean。调用的地方太多,只能
,用什么代码呢?

  我们在水母smth.org上
sun.reflect.Reflection.g
试了,果然能汇报,0是ge
不稳定。这个函数好象不能
发了一个提问,半小时内就有了
etCallerClass(int i),参数随
tCallerClass自身,1是bean自
准确的报告所有的调用层。对我
一个有价值的回答,提醒我们用
便,0,1,2,3都可以。我们
身,2就应该是bean的调用方,3
们来说,能有2好用就可以了。

  我们在程序上依然没有找到错误,vaja用了一个晚上排除了代码有问题的可能性。

  最后我们把weblogic的连接池的健壮性探测开关都打开,错误排除了。       

  Best Story III


  接着上一个故事,我们又调一个系统
能在weblogic上用。读ApplicationResou
ApplicationResources.properties文件
,这次是kevin的struts框架的程序搬家失败了,不
rces.properties文件失败,我们在
里改了各种可能,都不行。

  我们改用struts范例,部署也不成功。                                     

  我们换了一台服务器,范例部署成功了,而业务程序部署依然错误。                 

  改程序吧,kevin改了几次,没效果。                                       

  我们能判定的是:weblogic版本对应用系统的表现有影响。                 

  kevin和离岛狂人一起
补丁的。有补丁也是sp2。
比较了weblogic的版本,发现不

能部署struts范例的系统是根本没


  安装sp4?                                                                 

  在大连的网管没给我们
便解决问题。
ftp权限,三天后,在沈阳,从j

ava天师那里得到了sp4,回来装上


  一点经验


  调试问题,解决问题,关键在于分析,不在于编码快。                             

  光有j2sdk,jsp,servlet的知识和
,尽量分解错误,定位错误,缩小错误范
有助于调试的初步结论。
开发工具的知识,还是不够,要懂得系统运转的机理
围,还可以通过各种实验来排除一些可能,形成一些


  这是trouble shooting的基本思想。                             

  进一步,要分清楚是在研究环境还是现场环境做动作,在现场做事情另外有一些规则   

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·J2EE1.4新特性之Servlet2.4新特性  (2005-04-02)
 ·J2EE1.4新特性之JDBC3.0的新特性  (2005-04-02)
 ·J2EE运行环境性能优化艺术之二  (2005-04-02)
 ·J2EE运行环境性能优化艺术之三  (2005-04-02)
 ·J2EE运行环境性能大优化艺术之一  (2005-04-02)
 ·J2EE1.4新特性之JSP 2.0的新特性  (2005-04-02)
 ·J2EE1.4新特性之EJB2.1的新特性  (2005-04-02)
 ·J2EE 的四层模型  (2005-04-02)
 ·J2EE 的结构  (2005-04-02)
 ·J2EE的核心API与组件  (2005-04-02)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统