最近我们团队做了个项目:webwork2.2.4+spring+hibernate,部署在IBM小型机AIX5.3.9.0+Weblogic8.1.4上,小型机上的系统是:suse linux 32位的,但我在这要特别说明的是jdk并非用的是weblogic自带的(用的是IBM的jdk,不知他们是何用意),jdk版本:J2RE 1.4.2 IBM AIX build ca142-20080515(SR11)。
    申明:我们是为一个机关单位做的项目,机关单位规矩就是多,效率差!他们的要求是:小型机里的东西一概不可以动,但死机现象要解决,现在我们初步认定程序没有问题,但我们得拿出足够的证据证明死机不是程序的错,而是小型机配置上,但问题是:我们悲剧的现在拿不出证据!
    死机现象:宕机机器极其不规律,有时是用户操作大数据量时,有时是只个把用户在操作,都会出现莫名其妙的宕机,没有报错。weblogic自带监视的三根线:吞吐率、队列长度(总是为0)、内存使用率,都比较正常,有时死机时内存使用率是在50%那,有时在最高峰。调出后台日志,没有记录到什么错误,但是它就莫名其妙的死机了!而且小型机为我们分配的线程数为:200(是他们为我们分配线程数的max值了),那台小型机总共能分配线程数为:400。
    由于我们是远程部署的,我们能动态检测到的,就这三条线。现在我们猜测死机原因,其实是障碍和尚,瞎猜着!
    下面是我们今天我们宕机后,用小型机自带的机制生成的线程宕机日志(由于这些东西都是网上搜来的,所以我们也看不懂!只知道没有死锁,没有阻塞线程!望能看的懂的大虾,能否看出点什么端倪!)File name : C:\Documents and Settings\yyang\桌面\内容\javacore229876.1269937451.txt  
Cause of thread dump : signal 3 received  
Date: 2010/03/30 at 16:24:11  
Process ID : 229876  
Operating System : AIX 5.3.9.0  
Processor Architecture : POWER_PC (impl: unknown, ver: unknown)  
Number of Processors : 8  
Java version : J2RE 1.4.2 IBM AIX build ca142-20080515 (SR11)  
Java Heap Information 
Maximum Java heap size : 2048m 
Initial Java heap size : 2048m 
 
Java Home Directory : /usr/java14/jre  
Java DLL Directory : /usr/java14/jre/bin  
System Classpath : /usr/java14/jre/lib/core.jar:/usr/java14/jre/lib/graphics.jar:/usr/java14/jre/lib/security.jar:/usr/java14/jre/lib/server.jar:/usr/java14/jre/lib/xml.jar:/usr/java14/jre/lib/charsets.jar:/usr/java14/jre/classes:/usr/java14/jre/lib/ibmjssefips.jar:/usr/java14/jre/lib/ibmcertpathprovider.jar:/usr/java14/jre/lib/ibmjaaslm.jar:/usr/java14/jre/lib/ibmjcefw.jar:/usr/java14/jre/lib/ibmjgssprovider.jar:/usr/java14/jre/lib/ibmjsseprovider.jar:/usr/java14/jre/lib/ibmorb.jar:/usr/java14/jre/lib/ibmorbapi.jar:/usr/java14/jre/lib/ibmpkcs.jar  
User Arguments : vfprintf 0x30000E1C -Xms2048m -Xmx2048m -Dweblogic.Name=bopchk_server -Dweblogic.ProductionModeEnabled=true -Djava.security.policy=/home/weblogic/server/lib/weblogic.policy -Djava.awt.headless=true -Dinvokedviajava -Djava.class.path=./lib/antlr-2.7.6rc1.jar:./lib/db2jcc.jar:./lib/db2jcc_license_cu.jar:/home/weblogic/server/lib/CR237198_810sp4.jar:/usr/java14/lib/tools.jar:/home/weblogic/server/lib/weblogic_sp.jar:/home/weblogic/server/lib/weblogic.jar:/home/weblogic/server/lib/knex.jar:/home/weblogic/common/lib/log4j.jar:/home/weblogic/server/lib/jconn3.jar:/home/weblogic/server/lib/jTDS3.jar::/home/weblogic/common/eval/pointbase/lib/pbserver44.jar:/home/weblogic/common/eval/pointbase/lib/pbclient44.jar:/usr/java14/jre/lib/rt.jar:/home/weblogic/server/lib/webservices.jar:/home/bopchk/sqllib/java/db2java.zip:/home/bopchk/sqllib/java/db2jcc.jar:/home/bopchk/sqllib/java/sqlj.zip:/home/bopchk/sqllib/function:/home/bopchk/sqllib/java/db2jcc_license_cu.jar:. vfprintf  
GC Counter: 5  
AF Counter: 4  
Free Java heap size: 1,290,563,072 bytes  
Allocated Java heap size: 2,147,482,112 bytes  
Current Thread : "Signal dispatcher"  
Number of loaded classes in Java heap : 6,586  
Recommended size of kCluster : greater than 7,244  
Number of classloaders in Java heap : 463  
Command line : /usr/java14/bin/java -Xms2048m -Xmx2048m -Dweblogic.Name=bopchk_server -Dweblogic.ProductionModeEnabled=true -Djava.security.policy=/home/weblogic/server/lib/weblogic.policy -Djava.awt.headless=true weblogic.Server  Thread Status Analysis:
Status                 Number of Threads : 257       Percentage
Deadlock                    0                          0 (%)
Runnable                   31                          12 (%)
Waiting on condition       224                         87 (%)
Waiting on monitor          2                          1 (%)
Suspended                   0                          0 (%)
Object.wait()               0                          0 (%)
Blocked                     0                          0 (%)
Parked                      0                          0 (%)Thread Method Analysis:
Method Name                                                 Number of Threads : 257               Percentage
java.lang.Object.wait(Native Method)                                       222                        86 (%)
java.net.SocketOutputStream.socketWrite0(Native Method)                    22                          9 (%)
java.net.PlainSocketImpl.socketConnect(Native Method)                       5                          2 (%)
weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java(Compiled Code))   2              1 (%)
java.lang.Thread.sleep(Native Method)                                       1                          0 (%)
weblogic.socket.PosixSocketMuxer.poll(Native Method)                        1                          0 (%)
java.net.PlainSocketImpl.socketClose0(Native Method)                        1                          0 (%)
java.net.PlainSocketImpl.socketAccept(Native Method)                        1                          0 (%)
java.lang.ref.Reference.process(Native Method)                              1                          0 (%)
NO JAVA STACK                                                               1                          0 (%)Thread Aggregation Analysis:                
Thread Type                       Number of Threads : 257                    Percentage
Thread                                     250                                  97 (%)由于找不到直接上传截图的地方,所以只有这样排版,让大家看了,请看到我这么认真排版的份上, 原谅我的上传不了截图吧!我把今天的宕机日志上传到我上传的资源上(题目:IBM小型机线程宕机分析器)资源分:0分!
地址:http://download.csdn.net/source/2185419希望能提供帮助的兄台,麻烦下,去下下来看详细的,分现在只能给到100分,等问题解决,另开贴,给那些帮助过我的人送上分!

解决方案 »

  1.   

    so sorry!排版有问题,如下:
    Thread Status Analysis:
    Status Number of Threads : 257 Percentage
    Deadlock 0 0 (%)
    Runnable 31 12 (%)
    Waiting on condition 224 87 (%)
    Waiting on monitor 2 1 (%)
    Suspended 0 0 (%)
    Object.wait() 0 0 (%)
    Blocked 0 0 (%)
    Parked 0 0 (%)Thread Method Analysis:
    Method Name Number of Threads : 257 Percentage
    java.lang.Object.wait(Native Method) 222 86 (%)
    java.net.SocketOutputStream.socketWrite0(Native Method) 22 9 (%)
    java.net.PlainSocketImpl.socketConnect(Native Method) 5 2 (%)
    weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java(Compiled Code)) 2 1 (%)
    java.lang.Thread.sleep(Native Method) 1 0 (%)
    weblogic.socket.PosixSocketMuxer.poll(Native Method) 1 0 (%)
    java.net.PlainSocketImpl.socketClose0(Native Method) 1 0 (%)
    java.net.PlainSocketImpl.socketAccept(Native Method) 1 0 (%)
    java.lang.ref.Reference.process(Native Method) 1 0 (%)
    NO JAVA STACK 1 0 (%)Thread Aggregation Analysis: 
    Thread Type Number of Threads : 257 Percentage
    Thread 250 97 (%)
    这三个分析都是分三列来看的,由于没有上下对齐,所以不怎么好看,如上三个,第一列为名字,第二列为个数,第三列为百分比!
    希望大虾们给予小弟帮助,谢谢了!
      

  2.   

    AIX机器上跑WebSphere是比较好的,毕竟是一个厂商的WebLogic的日志不是很清楚,你可能需要Oracle的WebSphere工程师来帮助你,毕竟你们不熟悉WebLogic应用服务器,让他们找出当机时的WebLogic线程池等参数
      

  3.   

    我也希望啊!但这是机关单位,让他们换,是不可能的,他们说是推广的,已经定好小型机型号和内部软件了!让他们打weblogic客服,他们居然也不肯,说要层层上报,要是他们愿意上报,这么多天过去,也应该早批下来,打好客服了,可是他们就是不肯!
    这就是中国的机关啊!!!
      

  4.   

    换jdk sr11跟weblogic一起有bug