<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