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
(啟動);