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”的錯誤,需要檢視RobotServer的GC日誌和heapdump日誌。
6. 在RobotServer服務啟動腳本里有配置生成RobotServer的GC日誌和在發生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已經不是當時產生heapOOM的heapdump了。我們必須要在啟動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訊息傳送模式 在點對點或佇列模型: 一個生產者向一個特定的佇列釋出訊息,一個消費者從該佇列中讀取訊息。這裡,生產者知道消費者的佇列,並直接將訊息傳送到消費者的佇列。這種模式被概括為:只有一個消費者將獲得訊息。生產者不需要在接收者消費該訊息期間處於執行狀態,接收