1. 程式人生 > >Weblogic中介軟體例項不可連線分析方法

Weblogic中介軟體例項不可連線分析方法

Weblogic中介軟體例項不可連線。

1. 登入該weblogic的控制檯中檢查RobotServer狀態為unknown2. 點選servers->RobotServer->Monitoring,發現不可開啟。

3. 登入inyq0app04主機執行ps -ef|grep RobotServer檢視程序是否存在。

[email protected]:/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs>ps-ef|grep -i robotserver

xiaoi     312823241  0 20:36 pts/2    00:00:00 grep -i robotserver

xiaoi    21854     1  010:42 ?        00:00:00 /bin/sh./bin/startManagedWebLogic.sh RobotServer t3://localhost:6002

xiaoi   21924 21855  8 10:42 ?        00:49:05 /usr/java6//bin/java -server-Xms1536m -Xmx1536m -XX:MaxPermSize=256m -verbose:gc-Xloggc:/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs/robotServergc.log-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs/robotServer.hprof-Djavax.xml.stream.XMLInputFactory=weblogic.xml.stax.XMLStreamInputFactory-DpropertiesEncrypted=true -Drobot.logDisabledUserIdPrefix=sms:branch_ -da-Dplatform.home=/home/mw/weblogic/bea/wlserver_10.3-Dwls.home=/home/mw/weblogic/bea/wlserver_10.3/server-Dweblogic.home=/home/mw/weblogic/bea/wlserver_10.3/server-Dweblogic.management.discover=false-Dweblogic.management.server=t3://localhost:6002 -Dwlw.iterativeDev=false-Dwlw.testConsole=false -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/home/mw/weblogic/bea/patch_wls1030/profiles/default/sysext_manifest_classpath:/home/mw/weblogic/bea/patch_cie660/profiles/default/sysext_manifest_classpath-Djava.security.egd=file:/dev/./urandom -Dweblogic.Name=RobotServer-Djava.security.policy=/home/mw/weblogic/bea/wlserver_10.3/server/lib/weblogic.policyweblogic.Server

4. 程序存在,檢視RobotServer的nohup日誌中是否有OutOfMemory

cd/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs

grep i outofmemory robotServer.log

[email protected]:/home/ap/xiaoi>cd user_projects/domains/xiaoi_robot/logs

[email protected]:/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs>grep-i outofmemory robotServer.log

java.lang.OutOfMemoryError: Java heap space

Exception in thread "pool-3-thread-1"java.lang.OutOfMemoryError: Java heap space

Exception in thread "pool-3-thread-2"java.lang.OutOfMemoryError: Java heap spaceHeap

Caused by: java.lang.OutOfMemoryError: Java heap space

<2013-11-14 ÏÂÎç05ʱ30·Ö48Ãë CST><Error> <Server> <BEA-002608> <The ListenThread because ofan error: java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space.

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space.

java.lang.OutOfMemoryError: Java heap space

<2013-11-14 ÏÂÎç05ʱ30·Ö48Ãë CST><Error> <Server> <BEA-002608> <The ListenThread because ofan error: java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError:Java heap space.

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space.

java.lang.OutOfMemoryError: Java heap space

Exception in thread "[STANDBY]ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'"java.lang.OutOfMemoryError: Java heap space

5. 發現日誌中有報“java.lang.OutOfMemoryError: Java heapspace的錯誤需要檢視RobotServerGC日誌和heapdump日誌。

6. RobotServer服務啟動腳本里有配置生成RobotServerGC日誌和在發生OOM的情況下生成heapdump日誌的引數(紅色標出具體引數);

[email protected]:/home/ap/xiaoi/user_projects/domains/xiaoi_robot>virobotServer.sh

USER_MEM_ARGS="-Xms1536m -Xmx1536m-XX:MaxPermSize=256m -verbose:gc-Xloggc:/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs/robotServergc.log-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/home/ap/xiaoi/user_projects/domains/xiaoi_robot/logs/robotServer.hprof"

export USER_MEM_ARGS

nohup ./bin/startManagedWebLogic.shRobotServer t3://localhost:6002 >logs/robotServer.log &

7. 用GC日誌檢視工具ga.jar檢視GC日誌,在運維終端開啟cmd視窗,執行

Java jar C:\Users\ccb\Desktop\ga.jar,開啟工具後開啟GC日誌,如下圖:

點選檢視圖形介面,如下圖,點選右邊工具欄usedTenured+New發現heap區域瞬時佔滿,使用1.2G,並且沒有回收,然後檢視heapdump日誌。

8. 使用MemoryAnalyzer.exe工具分析heapdump日誌

Mat開啟方式,開啟cmd視窗

進入:C:\TDDOWNLOAD\MemoryAnalyzer-1.2.1.20121105-win32.win32.x86_64\mat>
執行:MemoryAnalyzer.exe -vmargs -Xmx8g

開啟heapdump檔案,

綜合分析認為,本次故障原因與robot_log_faqrank_task有關。

附錄:jstat、jmap、kill -3命令使用方法:

如果要使用這三個命令,需要在應用使用者目錄下新增環境變數,具體方法如下:

vi .bash_profile

PATH=/usr/java6/bin:$PATH

export PATH

儲存後執行以下命令

source .bash_profile

1.jstat命令

列印當前heap區域使用情況以及GC情況示例如下

說明主要看O列,當O列達到80%以上以及FGC列的次數很多時表示系統heap區域記憶體不足,server已經是不健康的。

執行jstat -gcutilPID 1000

jstat -gcutil 28231 1000

S0     S1     E     O      P     YGC    YGCT    FGC    FGCT    GCT  

100.00  0.00  64.54  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  64.54 17.39  99.78     58   2.829     0    0.000   2.829

100.00  0.00  64.70  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  64.87  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  65.41  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  65.41  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  65.41  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  65.41  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  65.98  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  65.98  17.39 99.78     58    2.829    0    0.000    2.829

100.00  0.00  65.98  17.39 99.78     58    2.829     0   0.000    2.829

100.00  0.00  65.98  17.39 99.78     58    2.829    0    0.000    2.829

2.jmap命令

執行jmap-dump:format=b,file=/home/weblogic/heapoom.dump <pid>

生成heap dump檔案MemoryAnalyzer進行分析。

這種方法生成的heapdump實時性不夠因為當產生heapOOM之後再利用jmap命令產生的heapdump已經不是當時產生heapOOMheapdump了。我們必須要在啟動weblogic server程序的時候,加入命令引數,使得當產生heapOOM時,系統立刻產生heapdump,以便我們進行分析。

在domain目錄/bin/setDomainEnv.sh中新增以下內容:

USER_MEM_ARGS="-Xms256m -Xmx512m-XX:MaxPermSize=128m -verbose:gc -Xloggc:/tmp/wls_log/gc_ms.log -XX:+HeapDumpOnOutOfMemoryError"

export USER_MEM_ARGS

解釋如下:

-verbose:gc-Xloggc:/tmp/wls_log/gc_ms.log

生成GC的日誌(當啟動WLServer時候會自動生成)

-XX:+HeapDumpOnOutOfMemoryError

當系統出現heap OOM,會自動出現dump檔案,在自己domain目錄下,檔名是java_pid4848.hprof

3.kill -3命令

kill -3 PID

當應用頁面不能訪問時,使用kill-3 PID命令抓取當時程序中執行緒的使用情況,輸出儲存在server的nohup日誌中,

可以檢視執行緒的具體報錯資訊。

也可以使用jstack命令,jstackPID > /tmp/aaa.log,在log中檢視執行緒的具體報錯資訊。

相關推薦

Weblogic中介軟體例項不可連線分析方法

Weblogic中介軟體例項不可連線。 1. 登入該weblogic的控制檯中檢查RobotServer狀態為unknown2. 點選servers->RobotServer->Monitoring,發現不可開啟。 3. 登入inyq0app04主機,執行ps

分散式事務中介軟體 TCC-Transaction 原始碼分析 —— Dubbo 支援

1. 概述 本文分享 Dubbo 支援。 TCC-Transaction 通過 Dubbo 隱式傳參的功能,避免自己對業務程式碼的入侵。可能有同學不太理解為什麼說 TCC-Transaction 對業務程式碼有一定的入侵性,一起來看個程式碼例子: 程式碼來自 t

Express中介軟體的意思 next()的方法

一、什麼是express?Express是一個簡潔、靈活的noode.jsWeb應用開發框架,它提供一系列強大的特性,幫助你建立各種Web和移動裝置應用。Express專案的底層由許多的中介軟體在協同工作,可以這麼說,一個Express應用就是在呼叫各種中介軟體。二、什麼是中介軟體? 官方解釋: 中介軟體是一

資料庫中介軟體 Sharding-JDBC 原始碼分析 —— SQL 解析(三)之查詢SQL

������關注微信公眾號:【芋艿的後端小屋】有福利: 1. RocketMQ / MyCAT / Sharding-JDBC 所有原始碼分析文章列表 2. RocketMQ / MyCAT / Sharding-JDBC 中文註釋原始碼

資料庫中介軟體 Sharding-JDBC 原始碼分析 —— SQL 解析(一)之詞法解析

本文主要基於 Sharding-JDBC 1.5.0 正式版 ������關注微信公眾號:【芋道原始碼】有福利: 1. RocketMQ / MyCAT / Sharding-JDBC 所有原始碼分析文章列表 2. Roc

Linux 安裝 weblogic 中介軟體

一:在Oracle 官網 根據系統環境下載不同的 安裝包 二:linux 上 新建 /u02/weblogic 目錄,並且 weblogic 使用者新增到weblogic 使用者組 三:減產/u02/的owner是否是weblogic 四: 修改下載的linux 版本的weblogic 安裝 檔案的執行許可

阿里巴巴中介軟體TDDL用於連線資料庫,分表分庫查詢

1.建立資料來源           由DBA來做。            一般資料來源有3層:           (1)Matrix                      分庫分表,資料路由,對應一個應用,下面有若干個group           (2)Grou

資料庫分庫分表中介軟體 Sharding-JDBC 原始碼分析 —— 分散式主鍵

������關注微信公眾號:【芋道原始碼】有福利: 1. RocketMQ / MyCAT / Sharding-JDBC 所有原始碼分析文章列表 2. RocketMQ / MyCAT / Sharding-JDBC 中文註釋原始碼 Gi

資料庫中介軟體 Sharding-JDBC 原始碼分析 —— SQL 解析(六)之刪除SQL

本文主要基於 Sharding-JDBC 1.5.0 正式版 ������關注微信公眾號:【芋道原始碼】有福利: 1. RocketMQ / MyCAT / Sharding-JDBC 所有原始碼分析文章列表 2. Roc

Jconsole/jvisualvm遠端監控weblogic中介軟體配置

1、進入linu操作介面,進入到啟動服務目錄下 2、選擇要監控的服務的啟動項,進入到編輯狀態(注意:要先將該檔案進行備份),如下圖所示   3、修改USER_AGRS域,新增如下內容,注意修改IP USER_JAVA_OPTIONS="-Dcom.sun.management.jm

laravel中介軟體的建立思路分析

網上有很多解析laravel中介軟體的實現原理,但是不知道有沒有讀者在讀的時候不明白,作者是怎麼想到要用array_reduce函式的? 本文從自己的角度出發,模擬瞭如果我是作者,我是怎麼實現這個中介軟體功能,又是怎麼找到並使用對應的函式。   什麼是laravel中介軟體 Laravel 中介軟體

記錄幾個訊息中介軟體的使用方法例項連結

kafak的簡單使用: https://www.cnblogs.com/sunxucool/p/3913919.html  activeMQ: https://www.cnblogs.com/swugogo/p/5910128.html JAVA併發控制,重入鎖: ht

第68篇 中介軟體的常用方法

1.什麼是中介軟體? 2. Django 自定義中介軟體的五個方法 處理請求:process_request(self,request)        0.執行的時間點:     返回響應之後   1. 執行順序     按照中介軟體註冊的順序執

《基於Nginx的中介軟體架構》學習筆記---3.nginx的目錄分析

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 12.0px "Helvetica Neue" } 一、目錄分析 用yum的方式進行安裝實質上裝的都是

金笛中介軟體發的簡訊對方收不到問題的解決方法

金笛中介軟體一直正常,但近期發的簡訊對方收不到,日誌或資料庫表均顯示已成功傳送,收信正常,將手機卡換到手機中發簡訊,對方能收到。在金笛中介軟體設定視窗中停止服務,然後執行Testmodern.exe,如下圖進行操作: 傳送簡訊,成功。關閉此視窗。回到金笛中介軟體設定視窗,啟動服務如下圖,再

web叢集部署(例項大於等於2個),nginx作為中介軟體時候,後端websocket有時候訊息無法傳遞給客戶端

最近公司有一個需求:新訂單需要及時提醒到後臺管理者,基於這一點我決定採用Websocket來實現。 當我把專案部署到生產環境的時候發現一個問題: 建立了Websocket連線後,每當有新的訂單發起,客戶端都會受到新訂單提醒。這時候就遇到一個問題,新訂單進來之後 客戶端有時候會有提醒 有時候卻

【laravel5.6】 laravel中介軟體內生成引數並且傳遞到控制器的2種方法

中介軟體方法: /** * 自定義中介軟體: * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */

laravel框架學習(四)執行建立中介軟體後,提示無法找到該中介軟體的解決方法

按照官方提供的文件:http://laravelacademy.org/post/7812.html 1.建立中介軟體:先宣告中介軟體, php artisan make:middleware AdminMiddleware 會自動在app/Http/Middlewar

幾個訊息中介軟體分析

ZeroMQ:c語言實現,不能資料持久化。 ActiveMQ:容易丟訊息,最大併發4000。 redis:可以用,但是非主流,案例很少,不方便擴充套件。 RocketMQ:阿里巴巴的中介軟體,資料很少。 ** RabbitMQ:擁有erlang語言本身的併發優勢

訊息中介軟體ActiveMQ(一)HelloWorld入門例項

1、JMS訊息傳送模式 在點對點或佇列模型: 一個生產者向一個特定的佇列釋出訊息,一個消費者從該佇列中讀取訊息。這裡,生產者知道消費者的佇列,並直接將訊息傳送到消費者的佇列。這種模式被概括為:只有一個消費者將獲得訊息。生產者不需要在接收者消費該訊息期間處於執行狀態,接收