日志是故障排查的核心依据,需重点关注以下日志文件:
$DOMAIN_HOME/servers/<server_name>/logs/目录下,主要包括server.log(服务器运行日志)、<server_name>.out(标准输出/错误日志)、access.log(HTTP访问日志)。使用tail -f命令实时查看日志,或通过grep过滤错误关键词(如ERROR、Exception),快速定位问题根源(如启动失败、部署错误、连接超时)。/var/log/messages或/var/log/syslog,查看是否有操作系统层面的错误(如磁盘空间不足、网络中断、权限问题),辅助排查与系统环境相关的故障。ps -ef | grep weblogic命令确认WebLogic进程是否正在运行,若未运行则尝试启动(systemctl start weblogic或./startWebLogic.sh)。systemctl status weblogic查看服务状态,若服务异常,可通过journalctl -u weblogic查看服务日志,获取更详细的启动失败信息。$DOMAIN_HOME/config/config.xml(域配置,包括监听端口、集群设置、数据源配置)、$DOMAIN_HOME/servers/<server_name>/config/startup.properties(启动参数)等文件,确保语法正确(可使用xmllint --noout config.xml验证XML格式)。netstat -tulnp | grep <port>检查)、JDBC数据源配置错误(URL、用户名、密码错误,使用sqlplus测试数据库连通性)、集群节点配置不一致(需同步所有节点的config.xml)。top(查看CPU/内存占用)、free -h(查看内存剩余)、df -h(查看磁盘空间)命令,确认系统资源是否充足。若内存不足,需调整WebLogic堆内存参数(-Xms、-Xmx);若磁盘空间不足,清理logs、tmp、cache目录。top -p <weblogic_pid>查看WebLogic进程的CPU/内存占用趋势,若某进程长期占用过高,可能存在内存泄漏或线程死锁。netstat -tulnp | grep <weblogic_port>确认WebLogic监听端口是否正常(状态为LISTEN);使用telnet <weblogic_host> <weblogic_port>或nc -zv <weblogic_host> <weblogic_port>测试客户端与服务器之间的端口连通性,若不通,需检查防火墙(firewall-cmd --list-ports)或SELinux(getenforce)设置。OutOfMemoryError(如PermGen space、Java heap space),需修改$DOMAIN_HOME/bin/setDomainEnv.sh文件,增加内存分配(如-Xms2048m -Xmx4096m)或调整永久代大小(-XX:MaxPermSize=512m,Java 8及以上版本需调整为-XX:MaxMetaspaceSize=512m)。jmap -dump:format=b,file=<dump_file> <weblogic_pid>生成堆转储文件,通过MAT(Memory Analyzer Tool)、VisualVM等工具分析内存泄漏对象(如未释放的集合、静态变量),定位泄漏代码。weblogic)对$DOMAIN_HOME、logs、tmp、cache等目录有读写权限(chown -R weblogic:weblogic $DOMAIN_HOME)。Enforcing模式,可能阻止WebLogic访问网络或文件,可通过setenforce 0临时关闭,或修改/etc/selinux/config文件永久禁用(SELINUX=disabled)。$DOMAIN_HOME/servers/<server_name>/logs/<app_name>_deploy.log,查看应用部署过程中的错误(如类加载失败、资源缺失)。$DOMAIN_HOME/servers/<server_name>/tmp/_WL_user/<app_name>_*/目录下的临时文件,或使用管理控制台重新上传部署包。访问http://<weblogic_host>:7001/console(默认端口7001),通过控制台查看:
Running状态,若有Failed状态,查看“监控”→“服务器”中的详细指标(如线程数、堆内存使用率)。ulimit -n查看当前限制,修改/etc/security/limits.conf文件(添加weblogic soft nofile 65535、weblogic hard nofile 65535),并重新登录用户使设置生效。ulimit -u查看进程数限制,若不足,同样修改/etc/security/limits.conf文件(添加weblogic soft nproc 65535、weblogic hard nproc 65535)。编辑/etc/sysctl.conf文件,优化网络性能(减少TCP连接超时、提高端口复用率):
net.ipv4.tcp_fin_timeout = 1 # TCP连接超时时间(秒)
net.ipv4.tcp_tw_reuse = 1 # 允许复用TIME_WAIT状态的端口
net.ipv4.tcp_max_syn_backlog = 262144 # SYN队列长度
net.core.somaxconn = 65535 # 监听队列最大长度
修改后执行sysctl -p使配置生效。
若故障由已知Bug引起(如启动慢、内存泄漏),建议升级到WebLogic最新版本(如14c),或应用Oracle发布的补丁包(通过My Oracle Support下载),修复已知的稳定性问题。