1. 检查日志文件(首要步骤)
日志是故障排查的核心依据,WebLogic的日志文件集中存储在$DOMAIN_HOME/servers/<server_name>/logs
目录下,其中server.log
(主日志)、AdminServer.out
(管理服务器输出)、<server_name>.out
(对应服务器实例输出)是重点关注对象。使用grep
命令可快速定位错误关键字(如ERROR
、Exception
),例如:grep -i "error" server.log
,能快速获取故障根源(如端口冲突、配置错误、类加载失败等)。
2. 验证Java环境(基础依赖)
WebLogic依赖JDK运行,需确保:
JAVA_HOME
需指向JDK安装目录(如/usr/java/jdk1.8.0_391
),且PATH
中包含$JAVA_HOME/bin
;java -version
命令验证是否能正确输出版本信息。若版本不符或环境变量错误,需调整setDomainEnv.sh
(域环境脚本)中的JAVA_HOME
设置。3. 排查端口冲突(常见启动问题)
WebLogic默认使用7001(管理端口)、7002(HTTPS端口)等,若这些端口被其他进程(如Apache、Tomcat)占用,会导致启动失败。使用以下命令检查端口占用:
netstat -tulnp | grep <端口号> # 查看端口占用进程
lsof -i:<端口号> # 更详细显示进程信息(如PID、名称)
若存在冲突,可选择:① 修改WebLogic端口(编辑config/config.xml
中的<listen-port>
标签);② 终止占用进程(kill -9 <PID>
)。
4. 检查配置文件正确性(逻辑错误根源)
关键配置文件(如config.xml
、domain.xml
、startup.properties
)的错误(如XML标签未闭合、路径错误、参数配置不当)会导致启动失败。重点检查:
config.xml
中的<domain>
、<server>
、<data-source>
等核心标签是否完整;startup.properties
中的启动类路径是否正确;jdbc-url
、username
、password
)是否有效。修改配置文件后,需重启WebLogic使变更生效。5. 监控系统资源(资源瓶颈排查)
系统资源不足(如内存、CPU、磁盘空间)会导致WebLogic运行缓慢或崩溃,使用以下命令监控:
free -m
(查看可用内存)、top
(按M
排序内存占用);top
(按P
排序CPU占用)、vmstat 1 5
(查看CPU使用率、上下文切换次数);df -h
(查看磁盘使用率,重点关注/
根分区)。startWebLogic.sh
中的JVM参数(如-Xms512m -Xmx2048m
);若磁盘空间不足,需清理日志或临时文件。6. 分析线程与内存转储(复杂问题诊断)
jstack <PID>
命令生成线程转储(<PID>
为WebLogic进程ID),分析是否存在线程死锁(如deadlock
关键字)、线程阻塞(如长时间等待数据库连接);jmap -dump:format=b,file=heap.hprof <PID>
生成堆转储,通过MAT(Eclipse Memory Analyzer)工具分析内存泄漏(如大量未释放的对象);-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log
参数,分析垃圾回收情况(如频繁Full GC可能导致性能下降)。7. 检查权限与锁文件(文件系统问题)
weblogic
)对$DOMAIN_HOME
及其子目录有读写权限(chown -R weblogic:weblogic $DOMAIN_HOME
);edit.lok
、config.lok
、AdminServer.lok
)。8. 使用WLST与管理控制台(动态监控)
connect('weblogic', '密码', 't3://localhost:7001')
serverRuntime()
exit()
可获取服务器运行时的线程、内存、JDBC连接池等信息;http://<服务器IP>:7001/console
(默认端口7001),查看服务器状态(如“运行中”“已停止”)、应用部署情况(如是否激活)、数据源连接状态(如是否可用)。9. 重启与重部署(临时问题解决)
./stopWebLogic.sh
(停止)、./startWebLogic.sh
(启动);