日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

处理Weblogic卡住的线程

發布時間:2023/12/3 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 处理Weblogic卡住的线程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義或卡線是什么?
? 如果線程 在設定 的時間 內連續工作(非空閑),則WebLogic Server會將其診斷為阻塞 您可以通過更改在診斷出線程被阻塞之前的時間長度( Stuck Thread Max Time ),以及通過更改服務器檢查線程是否被阻塞的頻率,來調整服務器的線程檢測行為。 在此處查看如何更改“粘線最大時間”。

問題還是為什么“粘線”是邪惡的?
?
WebLogic Server自動檢測執行隊列中的線程何時變為“阻塞”狀態。 由于卡住的線程無法完成其當前工作或接受新工作,因此服務器每次診斷出卡住的線程時都會記錄一條消息。 如果執行隊列中的所有線程都卡住了,則服務器會根據執行隊列將其運行狀況更改為“警告”或“嚴重”:

  • 如果默認隊列中的所有線程都卡住了,則服務器會將其運行狀況更改為“ 嚴重” 。 (您可以將Node Manager應用程序設置為在嚴重運行狀況下自動關閉和重新啟動服務器。有關更多信息,請參閱“配置和管理WebLogic Server”中的“ Node Manager功能 ”。)
  • 如果weblogic.admin.HTTP,weblogic.admin.RMI或用戶定義的執行隊列中的所有線程都卡住了,則服務器會將其運行狀況更改為“ 警告” 。
因此,實際上,幾個“阻塞線程”可能不會使服務器崩潰,從而阻止服務器處理請求,但這是一個不好的信號。 通常,卡住的線程數將增加,并且服務器最終將崩潰。

您可以采取什么措施來避免應用程序完全失敗?
?

WebLogic Server會定期檢查卡住的線程(這是“ 卡住線程計時器間隔” ,您可以在此處進行調整)。 如果所有應用程序線程都卡住,則服務器實例將自身標記為失敗,如果配置為失敗,則退出。 您可以配置節點管理器或第三方高可用性解決方案以重新啟動服務器實例以進行自動故障恢復。您可以將以下操作配置為在并非所有線程都被阻塞但被阻塞的線程數超過配置的閾值時發生:如果工作管理器卡住了線程,請關閉它。 關閉的工作管理器將通過發送拒絕消息來拒絕新工作并拒絕隊列中的現有工作。 在群集中,群集客戶端將故障轉移到另一個群集成員。
  • 如果應用程序中存在線程阻塞,請關閉應用程序。 通過將其置于管理模式來關閉該應用程序。 屬于該應用程序的所有工作管理器都將關閉,并按上述方式運行。
  • 將服務器實例標記為失敗,如果服務器中存在線程阻塞,則將其關閉。 在群集中,已連接或嘗試連接的群集客戶端將故障轉移到另一個群集成員。

如何識別問題?
?

推薦的方法是檢查線程轉儲。 選中“ 發送電子郵件警報以查找有關帶有線程轉儲的線程卡住的中間件魔術文章” ,使線程轉儲在發生時自動發送給您。

可以幫助您分析線程轉儲的工具有:

  • TDA –線程轉儲分析器
  • 武士

如何解決該問題?
?

確定導致卡住線程的代碼(即執行所花費的時間超過堆棧線程的最大時間)后,可以使用工作管理器執行代碼。 工作管理器具有“忽略卡住線程”選項,該選項使您能夠執行長時間運行的作業。 見下文:

以下是有關如何創建工作管理器的一些文章

  • https://blogs.oracle.com/jamesbayer/entry/work_manager_leash_for_slow_js
  • http://jdeveloperfaq.blogspot.com/2011/05/faq-34-using-weblogic-work-managers-to.html

測試:如何創建卡死線程?
?
如何創建“卡住線程”以測試您的weblogic設置? 將斷點放在隨您的請求調用的支持Bean或模型方法中。 如果您在斷點處等待“最大線程停留時間”,則會注意到服務器日志中將顯示“線程阻塞”跟蹤:

<16 =?? 2011 12:28:22 ?? EET><Error><WebLogicServer><BEA-000337><[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "134" seconds working on the request "weblogic.servlet.internal.ServletRequestImpl@6e6f4718[ GET /---/---/----/---/days.xhtml HTTP/1.1 Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: JSESSIONID=DYG5TDTZSnKLTFw5CMMdLCD9sPsZS4Jqlmxj9wdGNyt1BnPcfNrR!-1520792836]", which is more than the configured time (StuckThreadMaxTime) of "60" seconds. Stack trace:--------------------------------------------(--------------------.java:83)javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:285)com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:55)org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)org.primefaces.component.fieldset.FieldsetRenderer.encodeContent(FieldsetRenderer.java:95)org.primefaces.component.fieldset.FieldsetRenderer.encodeMarkup(FieldsetRenderer.java:76)org.primefaces.component.fieldset.FieldsetRenderer.encodeEnd(FieldsetRenderer.java:53)javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)javax.faces.render.Renderer.encodeChildren(Renderer.java:168)javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:55)org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:229)org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:152)

更多挖掘:

  • 弗蘭克·芒茨(Frank Munz)的精彩文章: WebLogic卡住了線程:創建,理解和處理它們 。 已針對Weblogic 12c更新。 還包括用于創建“粘滯線程”的示例應用程序。
  • http://stackoverflow.com/questions/2709410/weblogic-stuck-thread-protection

src:

  • Maxence Button的精彩文章: http : //m-button.blogspot.com/2008/07/using-wlst-to-perform-regular.html
  • http://download.oracle.com/docs/cd/E13222_01/wls/docs81/perfor/WLSTuning.html#1125714
  • http://download.oracle.com/docs/cd/E21764_01/web.1111/e13701/overload.htm
  • http://java.sys-con.com/node/358060?page=0,0

參考:在ADF和Weblogic How To博客上, 與我們的JCG合作伙伴 Spyros Doulgeridis 處理Weblogic的卡死線程有關 。


翻譯自: https://www.javacodegeeks.com/2012/05/dealing-with-weblogic-stuck-threads.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的处理Weblogic卡住的线程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。