Weblogic中间件实例不可连接分析方法
来源:互联网 发布:电子地图 数据库 编辑:程序博客网 时间:2024/06/15 23:40
Weblogic中间件实例不可连接。
1. 登录该weblogic的控制台中检查RobotServer状态为unknown2. 点击servers->RobotServer->Monitoring,发现不可打开。
3. 登录inyq0app04主机,执行ps -ef|grep RobotServer查看进程是否存在。
xiaoi@inyq0app04:/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs>ps-ef|grep -i robotserver
xiaoi 312823241 0 20:36 pts/2 00:00:00 grep -i robotserver
xiaoi 21854 1 010:42 ? 00:00:00 /bin/sh./bin/startManagedWebLogic.sh RobotServer t3://localhost:6002
xiaoi 21924 21855 8 10:42 ? 00:49:05 /usr/java6//bin/java -server-Xms1536m -Xmx1536m -XX:MaxPermSize=256m -verbose:gc-Xloggc:/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs/robotServergc.log-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs/robotServer.hprof-Djavax.xml.stream.XMLInputFactory=weblogic.xml.stax.XMLStreamInputFactory-DpropertiesEncrypted=true -Drobot.logDisabledUserIdPrefix=sms:branch_ -da-Dplatform.home=/home/mw/weblogic/bea/wlserver_10.3-Dwls.home=/home/mw/weblogic/bea/wlserver_10.3/server-Dweblogic.home=/home/mw/weblogic/bea/wlserver_10.3/server-Dweblogic.management.discover=false-Dweblogic.management.server=t3://localhost:6002 -Dwlw.iterativeDev=false-Dwlw.testConsole=false -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/home/mw/weblogic/bea/patch_wls1030/profiles/default/sysext_manifest_classpath:/home/mw/weblogic/bea/patch_cie660/profiles/default/sysext_manifest_classpath-Djava.security.egd=file:/dev/./urandom -Dweblogic.Name=RobotServer-Djava.security.policy=/home/mw/weblogic/bea/wlserver_10.3/server/lib/weblogic.policyweblogic.Server
4. 进程存在,查看RobotServer的nohup日志中是否有OutOfMemory
cd/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs
grep –i outofmemory robotServer.log
xiaoi@inyq0app04:/home/ap/xiaoi>cd user_projects/domains/xiaoi_robot/logs
xiaoi@inyq0app04:/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs>grep-i outofmemory robotServer.log
java.lang.OutOfMemoryError: Java heap space
Exception in thread "pool-3-thread-1"java.lang.OutOfMemoryError: Java heap space
Exception in thread "pool-3-thread-2"java.lang.OutOfMemoryError: Java heap spaceHeap
Caused by: java.lang.OutOfMemoryError: Java heap space
<2013-11-14 ÏÂÎç05ʱ30·Ö48Ãë CST><Error> <Server> <BEA-002608> <The ListenThread because ofan error: java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space.
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space.
java.lang.OutOfMemoryError: Java heap space
<2013-11-14 ÏÂÎç05ʱ30·Ö48Ãë CST><Error> <Server> <BEA-002608> <The ListenThread because ofan error: java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError:Java heap space.
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space.
java.lang.OutOfMemoryError: Java heap space
Exception in thread "[STANDBY]ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'"java.lang.OutOfMemoryError: Java heap space
5. 发现日志中有报“java.lang.OutOfMemoryError: Java heapspace”的错误,需要查看RobotServer的GC日志和heapdump日志。
6. 在RobotServer服务启动脚本里有配置生成RobotServer的GC日志和在发生OOM的情况下生成heapdump日志的参数(红色标出具体参数);
xiaoi@inyq0app04:/home/ap/xiaoi/user_projects/domains/xiaoi_robot>virobotServer.sh
USER_MEM_ARGS="-Xms1536m -Xmx1536m-XX:MaxPermSize=256m -verbose:gc-Xloggc:/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs/robotServergc.log-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs/robotServer.hprof"
export USER_MEM_ARGS
nohup ./bin/startManagedWebLogic.shRobotServer t3://localhost:6002 >logs/robotServer.log &
7. 用GC日志查看工具ga.jar查看GC日志,在运维终端打开cmd窗口,执行
Java –jar C:\Users\ccb\Desktop\ga.jar,打开工具后打开GC日志,如下图:
点击查看图形界面,如下图,点击右边工具栏usedTenured+New发现heap区域瞬时占满,使用1.2G,并且没有回收,然后查看heapdump日志。
8. 使用MemoryAnalyzer.exe工具分析heapdump日志
Mat打开方式,打开cmd窗口
进入:C:\TDDOWNLOAD\MemoryAnalyzer-1.2.1.20121105-win32.win32.x86_64\mat>
执行:MemoryAnalyzer.exe -vmargs -Xmx8g
打开heapdump文件,
综合分析认为,本次故障原因与robot_log_faqrank_task有关。
附录:jstat、jmap、kill -3命令使用方法:
如果要使用这三个命令,需要在应用用户目录下添加环境变量,具体方法如下:
vi .bash_profile
PATH=/usr/java6/bin:$PATH
export PATH
保存后执行以下命令:
source .bash_profile
1.jstat命令
打印当前heap区域使用情况以及GC情况,示例如下:
说明主要看O列,当O列达到80%以上以及FGC列的次数很多时表示系统heap区域内存不足,server已经是不健康的。
执行jstat -gcutilPID 1000
jstat -gcutil 28231 1000
S0 S1 E O P YGC YGCT FGC FGCT GCT
100.00 0.00 64.54 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 64.54 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 64.70 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 64.87 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 65.41 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 65.41 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 65.41 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 65.41 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 65.98 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 65.98 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 65.98 17.39 99.78 58 2.829 0 0.000 2.829
100.00 0.00 65.98 17.39 99.78 58 2.829 0 0.000 2.829
2.jmap命令
执行jmap-dump:format=b,file=/home/weblogic/heapoom.dump <pid>
生成heap dump文件,用MemoryAnalyzer进行分析。
这种方法生成的heapdump实时性不够,因为当产生heapOOM之后,再利用jmap命令产生的heapdump已经不是当时产生heapOOM的heapdump了。我们必须要在启动weblogic server进程的时候,加入命令参数,使得当产生heapOOM时,系统立刻产生heapdump,以便我们进行分析。
在domain目录/bin/setDomainEnv.sh中添加以下内容:
USER_MEM_ARGS="-Xms256m -Xmx512m-XX:MaxPermSize=128m -verbose:gc -Xloggc:/tmp/wls_log/gc_ms.log -XX:+HeapDumpOnOutOfMemoryError"
export USER_MEM_ARGS
解释如下:
-verbose:gc-Xloggc:/tmp/wls_log/gc_ms.log
生成GC的日志(当启动WLServer时候会自动生成)
-XX:+HeapDumpOnOutOfMemoryError
当系统出现heap OOM,会自动出现dump文件,在自己domain目录下,文件名是java_pid4848.hprof
3.kill -3命令
kill -3 PID
当应用页面不能访问时,使用kill-3 PID命令抓取当时进程中线程的使用情况,输出保存在server的nohup日志中,
可以查看线程的具体报错信息。
也可以使用jstack命令,jstackPID > /tmp/aaa.log,在log中查看线程的具体报错信息。
- Weblogic中间件实例不可连接分析方法
- WebLogic中间件
- 子系统类加载分析情况(中间件是weblogic)
- weblogic中间件|方正中间件|ES2007
- 中间件,weblogic,websphere 基本概念
- 常用的Weblogic中连接Oracle方法
- weblogic中间件启动慢,控制台登陆打开网页慢问题解决方法,已验证可解决哦
- 中间件连接异常处理方法1---------------------运维日志8
- c#静态方法不可以直接调用实例方法
- 分析weblogic数据库线程池无可用连接的问题
- 两种使用weblogic连接池的方法:web 应用
- 两种使用weblogic连接池的方法:JAVA应用程序
- weblogic中设置MySQL连接池的问题与方法
- jsp+weblogic连接oracle数据库的几种方法
- java应用程序JNDI方式使用weblogic连接池的方法
- JAVA中间件之weblogic安装篇
- STB中间件分析
- 安全中间件技术分析
- Page Handles
- 欢迎使用CSDN-markdown编辑器
- 每日学习
- 1012. 数字分类 (20)
- linux下mysql的root密码忘记解决方
- Weblogic中间件实例不可连接分析方法
- 静态链表
- 百度地图最新版本sdk使用系列(二)-修改百度地图的默认中心位置
- Remove Nth Node From End of List ——解题报告
- 解决问题方式的转变5
- 罗马字符发音
- WIFI之询问匹配接入
- 论文
- 基于Hadoop MapReduce模型的数据分析平台研究设计