Linux 上 WebLogic 故障排除实战手册
一 快速定位流程
- 查看 WebLogic 日志:优先检查 $DOMAIN_HOME/logs/ 下的 server.log、startWebLogic.log 等,关注 ERROR/SEVERE 与异常堆栈;必要时用 tail -f 实时跟踪。
- 检查系统资源:用 top、vmstat、iostat 观察 CPU、内存、磁盘 I/O 是否成为瓶颈。
- 核对端口与连通:确认 监听端口(常见 7001/7002) 未被占用,且 防火墙/安全组 已放行;必要时用 netstat 或 ss 排查端口占用与监听地址。
- 验证进程与脚本:用 ps -ef | grep weblogic 确认 Java 进程 与启动脚本是否正常;检查 startWebLogic.sh / setDomainEnv.sh 等脚本参数与环境变量。
- 配置核对:复核 config.xml、数据源、JVM 参数与应用部署描述文件是否有误。
- 网络连通:对管理端口与后端服务做 ping / telnet / nc 连通性测试。
- 数据库连接:检查 连接池 配置、数据库可用性与性能。
以上步骤能在多数场景下快速缩小问题范围并定位根因。
二 常见故障与修复要点
-
启动即停或提示输入用户名密码
现象:日志出现 “Getting boot identity from user.” 后报 “Failed to get value from Standard Input”,随后 SHUTDOWN。
原因:生产模式且 stdin/stdout/stderr 被重定向 时无法交互输入凭据。
修复:在对应服务器目录(如 $DOMAIN_HOME/servers/AdminServer/security 或 $DOMAIN_HOME/servers//security)创建 boot.properties,内容为:
username=你的管理员
password=你的密码
首次启动会自动加密;若此前修改过管理员口令,需确保 boot.properties 与新口令一致。
-
启动身份无效 Authentication denied: Boot identity not valid
现象:启动失败并抛出 SecurityInitializationException。
原因:boot.properties 中用户名或密码错误,或与安全域不一致。
修复:以明文更新 boot.properties 的 username/password 后重启,首次启动会自动加密保存。
-
端口被占用导致无法启动
现象:启动日志提示 Address already in use 或端口监听失败。
修复:用 netstat -tulpen | grep 7001 或 ss -ltnp | grep 7001 找到占用进程并停止,或调整 config.xml / startWebLogic.sh 中的监听端口;同时放行防火墙策略。
-
被管服务器无法启动(与管理密码变更相关)
现象:更改 管理密码 后,Managed Server 启动报认证失败。
修复:在被管服务器目录(如 $DOMAIN_HOME/servers//ldap)删除 ldap 目录(例如 rm -rf myManaged1/ldap),再重启被管服务器以重建安全上下文。
-
数据库连接失败或连接池异常
现象:应用报 无法获取连接/超时,或数据源测试失败。
修复:核对 JDBC URL、驱动类名、用户名/口令;检查数据库 网络可达性、负载与连接数上限;合理设置 初始/最大连接数、超时、验证查询 等参数。
三 日志与诊断命令清单
- 实时查看启动日志:
cd $DOMAIN_HOME/logs
tail -f server.log startWebLogic.log
- 进程与端口:
ps -ef | grep weblogic
netstat -tulpen | grep 7001 或 ss -ltnp | grep 7001
- 连通性测试:
ping 目标主机
telnet 目标主机 7001 或 nc -zv 目标主机 7001
- Java 线程与内存快照(进入 $DOMAIN_HOME/bin 或应用工作目录后执行):
jps -lvm
jstack > jstack.log
jmap -heap
jmap -dump:format=b,file=heap.hprof (注意磁盘空间与暂停时间)
以上命令覆盖日志、进程、端口、网络与 JVM 诊断的高频场景。
四 性能与稳定性优化要点
- 操作系统资源与网络
- 提升文件句柄与进程数限制:在 /etc/security/limits.conf 设置如
- soft nofile 65536
- hard nofile 65536
并在 /etc/pam.d/login 加入 session required pam_limits.so。
- 优化 TCP 参数(/etc/sysctl.conf):
net.ipv4.ip_local_port_range = 1024 65535
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0(NAT/负载均衡环境慎用)
net.ipv4.tcp_keepalive_time = 1800
修改后执行 sysctl -p 生效。
- WebLogic 与 JVM
- 合理设置堆内存:将 -Xms 与 -Xmx 设为相同值(如 -Xms4g -Xmx4g),减少 GC 波动。
- 线程与连接池:结合 CPU 与 I/O 调整 执行线程数 与 数据源连接池(初始/最大/超时/验证查询)。
- 监控与分析:通过 WebLogic Console / WLST / JMX 持续观察 线程、连接、GC、响应时间 等指标,必要时采集 jstack/jmap 做深入分析。
以上优化项可显著提升高并发与长时稳定运行能力。