CentOS 上 WebLogic 启动失败的定位与修复步骤
一、快速定位
- 查看启动输出与日志:在域目录执行启动后,使用命令实时查看输出与日志,优先关注首次报错位置与堆栈。示例:
- nohup ./startWebLogic.sh &
- tail -f nohup.out
- tail -f logs/startWebLogic.log
- 若使用 systemd 管理,执行:journalctl -u wls_admin -f
- 常见线索关键词:
- BEA-000386 / java.lang.AssertionError: Could not obtain the localhost address(主机名解析问题)
- BEA-090402 / Authentication denied: Boot identity not valid(boot.properties 凭据错误)
- Address already in use(端口占用)
- Error from fcntl() for file locking, Resource temporarily unavailable, errno=11(NFS 文件锁问题)
- 启动极慢或长时间停在 Security/Coherence 初始化阶段(诊断日志或 DNS/hosts 问题)
二、常见原因与修复对照表
| 症状与关键词 |
可能原因 |
修复要点 |
| BEA-000386 / Could not obtain the localhost address |
/etc/hosts 未正确映射本机 IP 与主机名 |
在 /etc/hosts 增加“本机IP 主机名”,如:192.168.101.2 weblogic1;确保 hostname 命令返回值与映射一致 |
| BEA-090402 / Boot identity not valid |
boot.properties 中用户名或密码错误(修改过域密码后常见) |
在域目录创建/编辑 security/boot.properties,明文写入 username/password,首次启动会自动加密 |
| Address already in use |
7001/7002 等端口被占用 |
用 ss -lntp |
| 启动极慢、长时间停在 Security/Coherence |
WLDF 诊断日志过大、DNS/hosts 解析慢、随机数熵不足 |
清理域目录下的 diagnostics 历史文件;检查 /etc/resolv.conf 与 /etc/hosts;JVM 增加 -Djava.security.egd=file:/dev/./urandom |
| 受管服务器无法注册到管理服务器(BEA-141196 等) |
缺少域安全标识或安全文件不一致 |
将管理域的 SerializedSystemIni.dat 复制到受管服务器相同 security 目录后重启 |
| 管理密码遗忘或内置 LDAP 异常 |
无法登录管理控制台 |
使用 weblogic.security.utils.AdminAccount 工具重建管理员用户,并清理被管服务器 ldap 目录后启动 |
| NFS 环境下重启失败、fcntl errno=11 |
NFSv3 锁租约/锁状态残留 |
重启 rpc-statd;必要时清理远端锁或迁移至非 NFS 存储;参考 Oracle 对 NFS 锁与重启行为的说明 |
三、关键操作示例
- 修复主机名解析
- 修复 boot.properties 凭据
- 文件路径:${DOMAIN_HOME}/security/boot.properties
- 内容(首次明文,启动后自动加密):
- username=weblogic
- password=YourStrongP@ssw0rd
- 清理 WLDF 诊断日志以恢复极慢启动
- 停止服务后备份并清理:
- mv ${DOMAIN_HOME}/servers/AdminServer/data/diagnostics ${DOMAIN_HOME}/servers/AdminServer/data/diagnostics.bak_$(date +%F)
- 重新启动
- 处理 NFS 锁问题(仅当域目录位于 NFS)
- 重启锁服务:
- sudo systemctl restart rpc-statd
- 验证锁:
- python3 -c ‘import fcntl; f=open(“/your/domain/path/servers/AdminServer/tmp/locktest”, “r”); fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB)’
- 如仍失败,清理远端残留锁或迁移域目录至本地磁盘
四、预防与优化建议
- 固化网络配置:在 /etc/hosts 中固定 本机IP-主机名 映射,避免 DHCP 变更导致解析异常。
- 规范凭据管理:统一使用 boot.properties,变更域密码后同步更新该文件并首次重启完成加密。
- 端口与资源规划:启动前检查 7001/7002 等端口占用,必要时调整;为 WebLogic 运行账号配置合适的 ulimit(/etc/security/limits.conf)。
- 存储与高可用:避免将域目录放在 NFSv3 上承载锁敏感数据;若必须使用,确保 rpc-statd 健康并做好锁故障应急预案。
- JVM 与启动参数:为 12c/14c 选择匹配的 JDK 8+;在 headless 环境增加 -Djava.awt.headless=true;必要时加入 -Djava.security.egd=file:/dev/./urandom 改善熵源导致的延迟。