溫馨提示×

ubuntu上weblogic的故障排查指南

小樊
49
2025-10-08 05:01:54
欄目: 智能運維

Ubuntu上WebLogic故障排查指南

一、故障排查基礎流程

1. 查看日志文件

日志是定位故障的核心依據,WebLogic的日志文件通常位于$DOMAIN_HOME/servers/your_server_name/logs目錄下(如server.log)。通過分析日志中的錯誤信息(如java.lang.NullPointerException、ClassNotFoundException)或異常堆棧,可快速定位問題根源(如類加載失敗、數據庫連接異常)。

2. 確認端口占用

WebLogic依賴多個端口(默認管理端口7001、節點管理器端口5556、應用服務器端口7002等),若端口被其他進程占用,會導致啟動失敗或服務不可用。使用以下命令檢查端口占用情況:

sudo netstat -tulnp | grep <端口號>

若端口被占用,可選擇終止占用進程kill -9 <PID>)或修改WebLogic端口配置(編輯config.xmlnodemanager.properties文件)。

3. 檢查配置文件

WebLogic的配置文件(如config.xml、nodemanager.properties、setEnv.sh)需確保語法正確、參數合理。常見配置問題包括:

  • config.xml中服務器名稱、集群配置錯誤;
  • nodemanager.properties中監聽端口(ListenPort)與防火墻沖突;
  • setEnv.shJAVA_HOME路徑錯誤(需指向Ubuntu上安裝的JDK目錄,如/usr/lib/jvm/java-8-openjdk-amd64)。

4. 驗證JDK兼容性

WebLogic對JDK版本有嚴格要求(如WebLogic 12c需JDK 8及以上),需確保:

  • Ubuntu上安裝的JDK版本與WebLogic兼容;
  • JAVA_HOME環境變量設置正確(在setEnv.sh中添加export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64);
  • 啟動腳本(startWebLogic.sh)使用正確的JDK路徑(可通過./startWebLogic.sh -version驗證)。

5. 檢查系統資源

系統資源不足(內存、磁盤空間、文件描述符)會導致WebLogic啟動緩慢或崩潰:

  • 內存:使用free -h查看內存使用情況,確保剩余內存足夠(建議預留1GB以上);
  • 磁盤空間:使用df -h檢查根分區或$DOMAIN_HOME所在分區,剩余空間需大于10GB;
  • 文件描述符:使用ulimit -n查看當前限制(建議設置為65535),若不足可通過修改/etc/security/limits.conf提升(添加* soft nofile 65535、* hard nofile 65535)。

二、常見故障及解決方法

1. 啟動失敗

(1)無法連接到數據庫

若日志中出現java.sql.SQLException: Listener refused the connection,需檢查:

  • 數據庫服務是否啟動(systemctl status mysql);
  • 數據庫連接池配置(config.xml中的jdbc參數,如URL、用戶名、密碼);
  • 防火墻是否允許WebLogic服務器訪問數據庫端口(如MySQL默認3306)。

(2)節點管理器無法訪問

若節點管理器無法與管理員服務器通信,需檢查:

  • 節點管理器端口(默認5556)是否開放(sudo ufw allow 5556);
  • nodemanager.properties中的ListenPort是否正確;
  • 管理員服務器URL(config.xml中的<administration-server>標簽)是否可達。

(3)啟動緩慢

若啟動時間過長(超過10分鐘),可能是java.security文件中的隨機數生成器導致。修改$JAVA_HOME/jre/lib/security/java.security,將:

securerandom.source=file:/dev/urandom

改為:

securerandom.source=file:/dev/./urandom

可顯著提升啟動速度。

2. 性能瓶頸

(1)內存溢出(OOM)

若日志中出現java.lang.OutOfMemoryError: Java heap space,需調整JVM內存參數(在startWebLogic.sh中添加):

-Xms1024m -Xmx2048m -XX:MaxPermSize=512m

其中-Xms為初始堆大小,-Xmx為最大堆大?。ńㄗh為初始大小的1.5-2倍)。

(2)線程阻塞

若應用響應緩慢,可使用jstack工具分析線程狀態:

jstack <WebLogic_PID> > thread_dump.txt

查看thread_dump.txt中的死鎖deadlock)或長時間等待BLOCKED)線程,優化代碼或調整線程池大?。?code>config.xml中的<thread-pool>標簽)。

(3)數據庫連接池耗盡

若日志中出現java.sql.SQLRecoverableException: IO Error: Connection reset,需調整數據庫連接池參數(config.xml中的<jdbc-connection-pool>標簽):

  • 增加max-capacity(最大連接數,如20);
  • 設置test-connections-on-reserve="true"(借用連接時測試有效性);
  • 減少inactive-connection-timeout-seconds(閑置連接超時時間,如300秒)。

3. 部署問題

(1)應用無法部署

若部署時出現weblogic.management.deploy.DeploymentException: Failed to deploy,需檢查:

  • 應用WAR/EAR文件是否完整(可通過unzip -t驗證);
  • 部署路徑是否正確(console中選擇DeploymentsInstall,指定正確路徑);
  • 應用依賴庫是否齊全(如缺少javax.servlet jar包,需添加到WEB-INF/lib目錄)。

(2)類加載沖突

若應用出現java.lang.LinkageErrorClassNotFoundException,需檢查類加載器層次結構(通過consoleServersyour_serverConfigurationClass Loader),建議將應用設置為父類加載器優先Parent Last),避免與WebLogic自帶庫沖突。

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