刚接手一项目,weblogic部署环境,发现weblogic每隔几个小时就shutdown一次,经过跟踪发现既不是内存问题,也不是数据库连接池问题,更不是访问量过大引起。
查询相关日志,只有以下几句shutdown的日志:
<BEA-000388> <JVM called WLS shutdown hook. The server will force shutdown now>
<BEA-000396> <Server shutdown has been requested by <WLS Kernel>>
<BEA-000365> <Server state changed to FORCE_SUSPENDING>
从上面的日志看来,更像是人为关闭weblogic产生的日志,一时间感觉没有头绪。经过半年多的查询各种相关资料,把问题范围锁定到jdk的相关问题。看到某文章上有一段话,大概是这样:When WebLogic Server running with the Sun JVM is shutdown, it is because there is a unwanted operating system call terminating the process.意思是说:当你的weblogic使用sun jvm时出现shutdown现象,是系统的一个不必要的操作,导致要关闭这个进程。而我的weblogic刚好使用的是sun jvm。
该问题解决方案如下:
确认你的weblogic使用的jdk是sun jdk还是JRockit jdk,然后需要在JAVA_OPTIONS加入以下参数
A sun jdk-加: -Djava.awt.headless=true -Xrs( -Djava.awt.headless=true可以不用)
B JRockit jdk-加: -Xnohup
所以找到 setdomainenv.sh,在文件的最后找到 JAVA_OPTIONS="${JAVA_OPTIONS}"改成JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true -Xrs"或JAVA_OPTIONS="${JAVA_OPTIONS} -Xnohup "即可。
关于修改JAVA_OPTIONS其实在很多相启动时的配置文件都可以修改,以上是linux环境weblogic修改方案。
原理:
-Xrs来
设置XRS阻止了Java:trademark:运行时间环境处理任何内部或外部产生的信号,如SIGSEGV和SIGABRT。提出的任何信号都默认的操作系统处理程序处理。在JVM中禁用信号处理降低约2-4%的性能,这取决于应用程序。
SIGABRT是中止一个程序,它可以被捕捉,但不能被阻塞。处理函数返回后,所有打开的文件描述符将会被关闭,流也会被flush。程序会结束,有可能的话还会core dump。 当程序调用abort(3)时,该进程会向自己发送SIGABRT信号。所以,SIGABRT一般用于信号中一些关键的处理,assert失败时也会使用它。你不应该去捕捉SIGSEGV和SIGABRT信号,如果收到这种信号,说明进程处于一个不确定的状态,很可能会直接挂起。
相关推荐
WebLogic WLS组件漏洞,文档描述如何通过禁用组件的方式来修补漏洞
自用CVE-2018-3191 weblogic反序列化exp。
Weblogic10.3.6-2204-2207补丁集 WLS PATCH SET UPDATE 10.3.6.0.220719 Patch 34009030 10.3.6.0.220419 Patch 33791826 10.3.6.0.220118 Patch 33494814 Patch 32973233 Coherence 3.7.1 Patch 22 (3.7.1.22) wls...
weblogic反序列化补丁包
BEA-Weblogic 10.0 config文件!(PDF格式)
weblogic---Eclipse插件,用在Eclipse上的插件,配置完成后便于用其作为开发的使用的服务器
BEA WebLogic Server 管理指南
----------------------------------20191010 ---------------------------- 本方法经本人亲自使用写下,在 检查 冲突 一步 检查 了很久大约 30分钟 ,但是最后也是成功了,所以只要不报错就可以 把补丁打上,如果 ...
K8 weblogic-CVE-2018-2628-getshell 渗透测试工具!请勿滥用! K8 weblogic-CVE-2018-2628-getshell 渗透测试工具!请勿滥用!
linux命令行完整安装weblogic12c--及优化JVM---可用-附件资源
weblogic CVE-2018-2628--exp
Weblogic9.2-for-Linux安装手册.doc
weblogic10.36 CVE-2018-2893补丁文件 最新补丁文件,修复 WebLogic(CVE-2018-2893)安全漏洞预警,oracle官方发布了2018年4月份的关键补丁更新CPU(CriticalPatchUpdate),其中包含一个高危的Weblogic反序列化漏洞...
Using Weblogic Server-Cluster
Weblogic CVE-2017-10271.zip
WebLogic CVE-2018-3191 payload 检测工具。
weblogic12c-linux12214