温馨提示×

WebLogic在Linux上的故障排除

小樊
40
2025-12-14 11:46:31
栏目: 智能运维

Linux 上 WebLogic 故障排除实战手册

一 快速定位流程

  • 查看 WebLogic 日志:优先检查 $DOMAIN_HOME/logs/ 下的 server.log、startWebLogic.log 等,关注 ERROR/SEVERE 与异常堆栈;必要时用 tail -f 实时跟踪。
  • 检查系统资源:用 top、vmstat、iostat 观察 CPU、内存、磁盘 I/O 是否成为瓶颈。
  • 核对端口与连通:确认 监听端口(常见 7001/7002) 未被占用,且 防火墙/安全组 已放行;必要时用 netstatss 排查端口占用与监听地址。
  • 验证进程与脚本:用 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.propertiesusername/password 后重启,首次启动会自动加密保存。

  • 端口被占用导致无法启动
    现象:启动日志提示 Address already in use 或端口监听失败。
    修复:用 netstat -tulpen | grep 7001ss -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 做深入分析。
      以上优化项可显著提升高并发与长时稳定运行能力。

0