<Dec 13, 2019 2:27:54,237 PM CST> <Notice> <WebLogicServer> <BEA-000388> <JVM called the WebLogic Server shutdown hook. The server will force shutdown now.> 
<Dec 13, 2019 2:27:54,240 PM CST> <Notice> <WebLogicServer> <BEA-000396> <Server shutdown has been requested by <WLS Kernel>.> 
<Dec 13, 2019 2:27:54,250 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SUSPENDING.> 

 

當weblogic使用jvm時出現shutdown現象,優化Jvm

該問題解決方案如下:

確認weblogic使用的jdk是sun還是JRockit,然后需要在Java_OPTIONS加入以下參數

A、sun的jdk-加:-Djava.awt.headless=true -Xrs( -Djava.awt.headless=true可以不用)

B、JRockit的jdk-加:-Xnohup

所以找到setdomainenv.sh, 在文件的最后找到JAVA_OPTIONS="${JAVA_OPTIONS}"

Sun改成:

JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true -Xrs"

JRockit改成:

JAVA_OPTIONS="${JAVA_OPTIONS} -Xnohup"即可。

原理:

  -Xrs
  設置XRS阻止了Java:trademark:運行時間環境處理任何內部或外部產生的信號,如SIGSEGV和SIGABRT。提出的任何信號都默認的操作系統處理程序處理。在JVM中禁用信號處理降低約2-4%的​​性能,這取決於應用程序。 
       SIGABRT是中止一個程序,它可以被捕捉,但不能被阻塞。處理函數返回后,所有打開的文件描述符將會被關閉,流也會被flush。程序會結束,有可能的話還會core dump。 當程序調用abort(3)時,該進程會向自己發送SIGABRT信號。所以,SIGABRT一般用於信號中一些關鍵的處理,assert失敗時也會使用它。你不應該去捕捉SIGSEGV和SIGABRT信號,如果收到這種信號,說明進程處於一個不確定的狀態,很可能會直接掛起。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM