溫馨提示×

centos環境下weblogic的故障排查指南

小樊
50
2025-10-05 07:02:02
欄目: 智能運維

一、基礎環境檢查

  1. Java環境驗證:確保系統安裝的Java版本與WebLogic兼容(如WebLogic 12c需Java 8及以上)。通過java -version命令檢查Java版本,若未安裝或版本不符,從Oracle官網下載對應JDK并配置JAVA_HOME環境變量(指向JDK安裝目錄),將其加入PATH中。
  2. 操作系統權限:確認運行WebLogic的用戶(如weblogic)對域目錄(DOMAIN_HOME)、日志目錄(logs)、臨時目錄(tmp)等有讀寫權限。若權限不足,使用chown -R weblogic:weblogic /path/to/domain修改所有權,chmod -R 775 /path/to/domain設置合理權限。

二、日志分析與關鍵錯誤定位

  1. 日志路徑:WebLogic日志主要位于DOMAIN_HOME/servers/AdminServer/logs/(AdminServer日志)和DOMAIN_HOME/servers/your_server_name/logs/(子服務器日志),核心日志文件為server.log。
  2. 實時日志查看:使用tail -f /path/to/domain/logs/server.log實時監控日志輸出,快速捕捉啟動或運行時的錯誤信息(如OutOfMemoryError、ClassNotFoundException、PortAlreadyInUse等)。
  3. 常見日志錯誤處理
    • 啟動失?。╞ea-000386):通常因網絡配置錯誤(如主機名解析失?。?,檢查/etc/hosts文件確保主機名與IP映射正確。
    • 內存溢出(OutOfMemoryError):需調整JVM內存參數(見“JVM內存配置”部分)。
    • 認證失?。ˋuthentication denied):檢查boot.properties文件中的用戶名/密碼是否正確,若密碼修改后需重新生成加密文件。

三、配置文件校驗

  1. 核心配置文件:重點檢查DOMAIN_HOME/config/config.xml(域配置)、DOMAIN_HOME/config/boot.properties(啟動認證)、DOMAIN_HOME/servers/AdminServer/config/admin.conf(AdminServer配置)等文件的語法正確性??墒褂?code>xmllint --noout /path/to/config.xml驗證XML格式是否合法。
  2. 端口配置:確認config.xml中的監聽端口(如7001、7002)未被其他應用占用。使用netstat -tulnp | grep <端口號>ss -tulnp | grep <端口號>檢查端口占用情況,若沖突可修改config.xml中的端口或終止占用進程。

四、系統資源監控

  1. 內存與CPU使用:使用top、htopfree -h命令查看WebLogic進程的內存(RES列)、CPU(%CPU列)使用情況。若內存占用過高,需調整JVM堆大?。ㄒ姟癑VM內存配置”);若CPU占用100%,可能因線程死鎖或應用性能問題,需進一步分析線程堆棧(見“線程分析”)。
  2. 磁盤空間:使用df -h檢查磁盤剩余空間,確保logs、tmp等目錄所在分區有足夠空間(建議保留20%以上),避免因磁盤滿導致WebLogic無法啟動或運行異常。

五、端口與網絡連通性

  1. 端口沖突排查:使用netstat -tulnp | grep <端口號>ss -tulnp | grep <端口號>檢查WebLogic所需端口(如7001、7002)是否被其他進程占用。若沖突,修改config.xml中的端口或使用kill -9 <PID>終止占用進程。
  2. 網絡連通性測試:使用ping <目標主機>測試與客戶端的連通性,telnet <主機> <端口>測試端口是否可達。若無法連通,檢查防火墻設置(iptables -L -n)或SELinux狀態(getenforce),確保放行WebLogic端口。

六、JVM內存配置

  1. 參數調整:修改DOMAIN_HOME/bin/startWebLogic.sh(Linux)或startWebLogic.cmd(Windows)中的JVM內存參數,根據服務器內存大小合理設置:
    • -Xms:初始堆大?。ㄈ?code>-Xms1024m);
    • -Xmx:最大堆大?。ㄈ?code>-Xmx2048m);
    • -XX:MaxPermSize(Java 7及之前):永久代大?。ㄈ?code>-XX:MaxPermSize=512m);
    • 推薦使用G1垃圾回收器(-XX:+UseG1GC)提升GC效率。
  2. 內存泄漏排查:若頻繁出現OutOfMemoryError,使用jmap -histo:live <PID>查看堆內存中的對象分布,jvisualvmMAT(Memory Analyzer Tool)分析內存泄漏點(如未關閉的數據庫連接、緩存未清理等)。

七、線程與死鎖分析

  1. 線程堆棧獲取:使用jstack <PID> > thread_dump.log獲取WebLogic進程的線程堆棧信息,分析線程狀態(如RUNNABLE、BLOCKED)。
  2. 死鎖檢測:在thread_dump.log中搜索“deadlock”關鍵詞,若存在死鎖,需修改應用代碼(如避免嵌套鎖、使用tryLock替代synchronized)或調整線程池大?。?code>config.xml中的<thread-pool>配置)。

八、權限與鎖定文件處理

  1. 權限修復:確保運行WebLogic的用戶對以下目錄有完全控制權:
    • 域目錄(DOMAIN_HOME);
    • 日志目錄(logs);
    • 臨時目錄(tmp);
    • 緩存目錄(cache)。
  2. 鎖定文件刪除:若WebLogic無法啟動(如卡在“Starting”狀態),刪除域目錄下的鎖定文件:
    • edit.lok(編輯鎖定文件);
    • config.lok(配置鎖定文件);
    • AdminServer.lok(AdminServer鎖定文件);
    • EmbeddedLDAP.ldap.dat(LDAP數據庫文件)。

九、應用程序部署檢查

  1. 部署狀態驗證:通過WebLogic管理控制臺(http://<主機>:7001/console)進入“部署”頁面,檢查應用程序是否處于“已激活”狀態。若狀態為“失敗”,點擊“查看日志”獲取具體錯誤信息。
  2. 重新部署應用:若應用部署失敗,刪除原有部署(“部署”→“目標”→“取消部署”),重新上傳WAR/EAR文件并部署。確保應用包結構正確(如WEB-INF/lib下的jar包無沖突)。

十、系統資源限制調整

  1. 文件描述符限制:WebLogic需要大量文件描述符(尤其是處理大量并發請求時)。使用ulimit -n查看當前限制,若小于10000,修改/etc/security/limits.conf文件,添加以下內容:
    * soft nofile 65535
    * hard nofile 65535
    
    重新登錄用戶使設置生效。
  2. 進程數限制:使用ulimit -u查看進程數限制,若不足,同樣在limits.conf中添加:
    * soft nproc 65535
    * hard nproc 65535
    

十一、其他常見問題解決

  1. SELinux設置:若SELinux處于“Enforcing”模式,可能會阻止WebLogic訪問某些文件或端口。使用setenforce 0臨時設置為“Permissive”模式,或修改/etc/selinux/config文件中的SELINUX=permissive,重啟系統生效。
  2. 版本升級:若使用較舊版本的WebLogic(如10g),建議升級到最新版本(如14c),新版本通常修復了已知bug并提升了穩定性。

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