Ubuntu下WebLogic的故障排查技巧有哪些
导读:Ubuntu下WebLogic故障排查技巧 一 日志与信息收集优先 定位并实时查看日志:进入域目录 $DOMAIN_HOME/logs,使用命令如:tail -f server.log、tail -f startWebLogic.log,...
Ubuntu下WebLogic故障排查技巧
一 日志与信息收集优先
- 定位并实时查看日志:进入域目录 $DOMAIN_HOME/logs,使用命令如:tail -f server.log、tail -f startWebLogic.log,或用 grep 检索关键字(如“ERROR”“Exception”)。这些日志能最快反映启动失败、部署异常、类冲突等问题。
- 启动时开启 GC 日志并重定向输出:在启动脚本或命令行加入 -verbose:gc,并将 stdout/stderr 重定向到文件(例如:> > server.out 2> & 1),便于后续分析内存与停顿。
- 发生“卡住/挂起/疑似死锁”时,采集多次线程转储:在运行中按 **Ctrl+**(或 kill -3 )获取线程 dump;对集群问题,建议每个节点采集多份、间隔一段时间,形成可诊断的日志集。
- 若需远程排障,可临时开启调试端口(示例):在 setDomainEnv.sh 中加入 JAVA_OPTIONS=“-Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n”,重启后在 IDE 远程调试。
二 常见故障快速定位与修复
- 端口冲突导致无法访问控制台:检查监听端口(常见为 7001/7002)是否被占用(如 netstat -an | grep 7001),若冲突则释放占用进程或修改 config.xml 的 ListenPort。
- 启动或登录异常缓慢:JDK 在 Linux 上可能因 /dev/random 阻塞导致熵不足,可在启动参数加入 -Djava.security.egd=file:/dev/./urandom,或在 $JAVA_HOME/jre/lib/security/java.security 将 securerandom.source 改为 file:/dev/./urandom。
- 无法获取文件锁(.lok):说明同域目录已有实例在运行或异常退出残留锁。删除对应 .lok(如 AdminServer.lok、m1.lok),必要时清理 tmp 目录后再启动。
- Node Manager 启动失败且报 “Invalid state file format”:删除域目录 servers//data/nodemanager/.state 后重启 Node Manager。
- 管理控制台登录缓慢或卡顿:除熵源外,检查浏览器缓存、清理控制台临时文件、确认网络延迟与后端数据源健康。
- 权限问题导致启动/部署失败:确保 $DOMAIN_HOME 及子目录属主与启动用户一致,避免因权限不足导致无法写日志、读配置或访问目录。
三 运行期问题定位与性能分析
- 线程与内存分析:使用 jstack 抓取线程栈定位死锁/阻塞;使用 jmap 查看堆内存与对象分布,必要时配合可视化工具分析泄漏趋势。
- 系统资源瓶颈:用 top/vmstat/iostat 观察 CPU、内存、磁盘 I/O、网络 是否成为瓶颈,结合 GC 日志判断是否存在频繁 Full GC 或长停顿。
- 数据库连接与连接池:核查 JDBC URL、驱动版本(如 ojdbc6)、账号口令、网络连通性与防火墙;在控制台检查连接池 Initial/Max Capacity、Timeout、Test Connections on Reserve 等参数是否合理。
- 类加载与依赖冲突:应用报 NoSuchMethodError/NoClassDefFoundError 等,多为依赖冲突。可在 weblogic.xml 使用 指定优先加载应用包(如 javassist、javax.persistence、org.apache.commons 等),避免与 WebLogic 自带模块冲突。
- 日志框架冲突:若项目使用 slf4j/log4j/logback,需保证绑定唯一并配置正确的 log4j.xml/logback.xml;WebLogic 自带日志实现可能与应用冲突,必要时在 weblogic.xml 中显式声明。
四 Ubuntu与Linux环境的专项检查
- 文件句柄与进程数限制:检查 ulimit -n/-u,必要时在 /etc/security/limits.conf 或 /etc/security/limits.d/ 提升 nofile/nproc,避免因资源限制导致启动失败或运行中异常。
- 防火墙与端口放行:确认 iptables/ufw 已放行 WebLogic 监听端口(如 7001/7002)及集群通信端口,避免因策略阻断导致访问或节点互联失败。
- 权限与目录属主:域目录、日志目录、临时目录需与 启动用户 一致,避免因权限不足导致无法写 server.log、tmp、cache 等。
- 环境一致性:确保 JAVA_HOME 指向受支持的 JDK,避免混用不同厂商/版本的 JDK 引发兼容性问题。
五 一键排查清单与常用命令
- 快速清单
- 查看实时日志:tail -f $DOMAIN_HOME/logs/server.log
- 检查端口:ss -ltnp | grep 7001 或 netstat -an | grep 7001
- 清理锁文件:rm servers//tmp/.lok(谨慎操作)
- 采集线程 dump:kill -3 (多次、间隔采集)
- 线程/内存分析:jstack ;jmap -heap
- 资源监控:top/vmstat 1 10;iostat -x 1 10
- 数据库连接:tnsping/ nc -vz < DB_HOST> < DB_PORT> ;检查驱动与连接池配置
- 启动参数优化:加入 -Djava.security.egd=file:/dev/./urandom;必要时开启 -verbose:gc 并重定向输出
- 常用命令示例
- 查看进程与端口:ps -ef | grep weblogic;ss -ltnp | grep 7001
- 清理锁与缓存:find $DOMAIN_HOME/servers -name ".lok" -delete;rm -rf **$DOMAIN_HOME/servers//tmp/* $DOMAIN_HOME/servers//cache/
- 远程调试:在 setDomainEnv.sh 增加 JAVA_OPTIONS=“-Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n”
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu下WebLogic的故障排查技巧有哪些
本文地址: https://pptw.com/jishu/773544.html
