溫馨提示×

centos weblogic常見故障排除

小樊
47
2025-09-20 10:02:33
欄目: 智能運維

一、日志分析與故障定位
日志是排查WebLogic故障的核心依據,CentOS下WebLogic日志主要位于$DOMAIN_HOME/servers/server_name/logs目錄,需重點關注以下文件:

  • server.log:記錄服務器運行狀態、錯誤堆棧及關鍵事件(如啟動/關閉過程);
  • AdminServer.out:Admin服務器的標準輸出/錯誤流,包含啟動時的配置加載信息;
  • server_name.out:受管服務器的運行日志,反映業務處理中的異常。
    使用grep命令快速定位關鍵字(如“ERROR”“Exception”),例如grep -i "error" server.log,可快速提取錯誤信息。

二、常見故障及解決方法

1. WebLogic無法啟動

典型癥狀:執行./startWebLogic.sh后無響應,或提示“Server failed to start”等錯誤。
排查步驟

  • 檢查日志:優先查看server.log,常見原因包括配置文件錯誤(如config.xml格式問題)、端口沖突、JDK版本不兼容(需匹配WebLogic要求的JDK版本,如1.8及以上)。
  • 驗證端口占用:使用netstat -tulnp | grep <端口號>(如7001、7002)檢查端口是否被其他進程占用,若有沖突,修改config.xml中的ListenPort或終止占用進程(kill -9 <PID>)。
  • 清理緩存:刪除服務器目錄下的cache、tmp文件夾(如$DOMAIN_HOME/servers/AdminServer/cache),這些文件夾中的.lock文件可能導致啟動失敗,清理后重啟服務。

2. 連接數據庫問題

典型癥狀:應用程序拋出“Cannot get connection from DataSource”“Connection timed out”等錯誤,或連接池監控顯示“Waiting For Connection”數量持續增長。
排查步驟

  • 啟用連接泄漏檢測:在WebLogic控制臺→ServicesJDBCConnection Pools→選擇對應連接池→ConfigurationDiagnostics,開啟“Enable Connection Leak Profiling”和“Enable Connection Profiling”,查看日志中是否有“A JDBC pool connection leak was detected”(泄漏的類名會在日志中標記)。
  • 優化連接池配置:若存在連接泄漏,修改應用程序代碼,確保Connection.close()finally塊中調用;若連接不夠用,調整連接池參數:Maximum Capacity(最大連接數,建議設置為峰值并發數的1.2倍)、Inactive Connection Timeout(非活躍連接超時時間,默認100秒,可根據業務調整至300秒)、Test Reserved Connections(啟用連接有效性測試,避免返回失效連接)。
  • 檢查數據庫狀態:確保數據庫服務正常運行,網絡可達(ping <數據庫IP>),防火墻開放數據庫端口(如MySQL的3306、Oracle的1521)。

3. 內存不足(OutOfMemoryError)

典型癥狀:JVM拋出java.lang.OutOfMemoryError: Java heap spacejava.lang.OutOfMemoryError: Metaspace,服務器響應緩慢或崩潰。
排查步驟

  • 獲取堆轉儲文件:修改startWebLogic.sh,添加JVM參數-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof,崩潰時會自動生成堆轉儲文件。
  • 分析內存使用:使用jstat -gcutil <PID> 1000 10(每1秒采樣1次,共10次)查看堆內存各區域(Eden、Survivor、Old)的使用率,若Old區使用率持續接近100%,說明存在內存泄漏;使用jmap -heap <PID>查看堆內存分配詳情;使用MAT(Memory Analyzer Tool)分析堆轉儲文件,定位占用內存大的對象(如緩存未清理的大集合)。
  • 調整內存參數:根據分析結果調整startWebLogic.sh中的JVM參數,例如-Xms2048m -Xmx4096m(初始堆2G,最大堆4G)、-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m(元空間大?。?。

4. 端口沖突

典型癥狀:控制臺無法訪問(http://<服務器IP>:7001/console提示“無法連接”),或啟動時提示“Address already in use”。
排查步驟

  • 檢查端口占用:使用netstat -tulnp | grep 7001(或對應端口)查看占用進程,例如:
    tcp6   0   0 :::7001   :::*   LISTEN   1234/java
    
    表示PID為1234的Java進程占用了7001端口。
  • 解決沖突:若占用進程為WebLogic自身(如重啟時未完全停止),使用kill -9 1234終止進程;若為其他應用程序(如Nginx、Tomcat),修改其配置文件更換端口,或修改WebLogic的config.xml中的ListenPort(如將7001改為8001)。

5. 節點管理器(Node Manager)無法啟動

典型癥狀:執行./startNodeManager.sh后提示“Invalid state file format”或無法連接到節點管理器。
排查步驟

  • 清理狀態文件:節點管理器的狀態信息存儲在$DOMAIN_HOME/servers/server_name/data/nodemanager/server_name.state,刪除該文件后重新啟動節點管理器。
  • 檢查配置文件:編輯$DOMAIN_HOME/nodemanager/nodemanager.properties,確保ListenPort(默認5556)未被占用,SecureListener(是否啟用SSL)設置為false(測試環境可關閉)。
  • 開放防火墻:使用firewall-cmd --add-port=5556/tcp --permanent開放節點管理器端口,然后firewall-cmd --reload生效。

6. SELinux導致的服務異常

典型癥狀:WebLogic無法啟動、無法訪問網絡(如連接數據庫失?。?,日志中提示“Permission denied”。
解決方法

  • 臨時禁用SELinux:執行setenforce 0,將SELinux切換至寬容模式(不影響系統運行,僅關閉安全策略),測試是否解決問題。
  • 永久禁用SELinux:編輯/etc/selinux/config,將SELINUX=enforcing改為SELINUX=disabled,重啟服務器生效(注意:生產環境需謹慎操作,可能影響系統安全性)。

7. 系統資源不足

典型癥狀:服務器響應緩慢、WebLogic進程CPU使用率100%、內存耗盡(free -h顯示內存不足)、磁盤空間耗盡(df -h顯示根分區100%)。
排查步驟

  • 檢查CPU使用率:使用top命令查看CPU占用最高的進程,若WebLogic進程占用過高,可能是線程死鎖或代碼性能問題,使用jstack <PID>獲取線程轉儲,分析線程狀態(如“BLOCKED”狀態的線程)。
  • 檢查內存使用:使用free -h查看內存剩余量,若內存不足,優化應用程序(如減少緩存大?。?、增加物理內存,或調整WebLogic內存參數(如增大-Xmx)。
  • 檢查磁盤空間:使用df -h查看各分區使用情況,若根分區(/)空間不足,清理無用文件(如/var/log下的舊日志、/tmp下的臨時文件)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女