CentOS 上 WebLogic 连接问题的排查与修复
一 快速定位思路
- 明确连接类型:是外部客户端→WebLogic(HTTP/HTTPS/T3)、还是WebLogic→数据库(JDBC)。
- 分层检查:先看网络连通性(ping、curl、traceroute、ss/netstat),再看系统防火墙/SELinux,随后核对WebLogic 监听与配置,最后查看日志定位根因。
- 关键命令清单:ping、curl、ip addr、nslookup/dig、firewall-cmd --list-all、systemctl status/start、journalctl -xe、ss -lntp、traceroute、netstat -anp。
二 外部访问 WebLogic 不通的排查
- 网络与端口连通性
- 确认监听地址与端口:在 WebLogic 控制台或 config.xml 中核对Listen Address/Listen Port(常见为 7001/7002),避免仅绑定到 127.0.0.1。
- 本机连通性:ss -lntp | grep 7001;netstat -anp | grep 7001;必要时用 curl -Iv http://localhost:7001 验证。
- 跨机连通性:ping 目标 IP;traceroute 跟踪路径;远程执行 curl 或 telnet 目标IP 7001 验证是否被远端防火墙拦截。
- 防火墙与 SELinux
- firewalld:firewall-cmd --list-all 查看已放行端口;放行 WebLogic 端口(示例:firewall-cmd --zone=public --add-port=7001/tcp --permanent && firewall-cmd --reload)。
- SELinux:必要时临时 setenforce 0 验证是否为策略阻断,再按需配置端口类型或布尔值。
- WebLogic 配置与日志
- 核对AdminServer 与受管 Server 的监听地址/端口;确认未与同机其他进程端口冲突。
- 查看日志:DOMAIN_HOME/servers/server_name/logs 下的 server_name.log、AdminServer.out,关注启动失败、端口占用、地址绑定错误等关键信息。
三 WebLogic 连接数据库的排查
- 基础可达性与权限
- 数据库侧:确认数据库服务已启动(如 systemctl status postgresql/mysqld);网络可达(ping、telnet db_host db_port);数据库用户具备远程访问权限与所需授权。
- 防火墙:放行数据库端口(示例:PostgreSQL 5432、MySQL 3306)。
- JDBC 与连接池
- 核对数据源的 JDBC URL、驱动类、用户名/密码;确保驱动版本与数据库匹配。
- 连接池参数:设置合理的Initial/Max Capacity、Capacity Increment、Inactive Connection Timeout、Test Connections on Reserve/Create/Release,并开启连接有效性测试,避免连接泄漏与耗尽。
- 日志与常见错误
- 同时查看 WebLogic 服务器日志与数据库日志,从连接拒绝、超时、认证失败等线索定位问题。
四 常见错误与修复要点
- 启动身份或 LDAP 认证失败
- 现象:启动时报错如 Authentication denied: Boot identity not valid 或 LDAP error 49/32。
- 处理:检查域目录下的 boot.properties(username/password)是否正确;若使用 LDAP,核对 bindDN/密码与用户所属组;必要时更新凭据后重启。
- 读取或请求超时
- 现象:客户端或内部调用出现 java.net.SocketTimeoutException: Read timed out。
- 处理:区分是网络抖动/客户端中断还是应用处理过慢/大结果集;必要时优化 SQL、分页/流式处理,或调整读/写超时与空闲超时相关配置。
五 一键式排查清单
| 检查项 |
关键命令或位置 |
期望结果 |
| 监听端口与进程 |
ss -lntp |
grep 7001;netstat -anp |
| 本机访问 |
curl -Iv http://localhost:7001 |
返回 HTTP 200/302 或管理控制台登录页 |
| 远程访问 |
ping/traceroute/curl/telnet 目标IP 7001 |
网络可达且端口开放 |
| 防火墙 |
firewall-cmd --list-all;必要时 firewall-cmd --add-port=7001/tcp --permanent && firewall-cmd --reload |
7001/7002/443 等端口放行 |
| SELinux |
getenforce;必要时 setenforce 0 验证 |
非策略阻断(验证后请恢复为 Enforcing) |
| 数据库可达 |
ping db_host;telnet db_host db_port |
数据库端口可达 |
| 数据库权限 |
数据库内执行 GRANT/用户权限检查 |
用户可从 WebLogic 主机远程连接 |
| JDBC 与连接池 |
控制台核对 URL/驱动/凭据;启用测试连接 |
连接创建成功且可用 |
| 日志定位 |
DOMAIN_HOME/servers/server_name/logs/*.log |
无启动/连接报错,错误堆栈指向根因 |