起因
因公司护网要求,外加此互联网机器在护网期间被攻破,该机器需要及时安装中间件补丁或者升级中间件版本来加强防护,由于厂商已暂停对weblogic1213的补丁服务,采取upgrade中间件版本的方式。ps:安全薄弱点:1.双网卡(一个内网和一个外网)2.分公司运维和安全抵御能力有限。此次主要以记录故障处理为主,不详细描述切换方案。
生产故障现象
安装JAVA、weblogic1411,过程中严格按照要求操作,并没有发现有报错现象,实施部署人员白天完成操作后进行生产验证正常,按照预订计划晚上切换后,业务人员也反馈业务操作正常,后实施人员发现日志有报错,后业务人员也反馈重要功能无法使用,也就是说,测试过程中没有进行完整的业务验证流程,不影响主要使用,而是影响重要功能的正常操作。
报错线程阻塞超时600s,
<STUCK) Executethread:on the request "Http Request Information: weblogic.servletinternImpl@68fdc2c2[PosT /xxxinterf/pppp/upload]"600n secondwhich is more than the confiqured time (StuckThreadMaxTime) of"server-failure-triqger". Stack trace
排查思路
- 调整线程阻塞时间为1200s,发现不行,业务直接反馈不能使用;
- 寻求研发同学的帮助,查看程序代码PosT /xxxinterf/pppp/upload中方法的调用,后因为此调用在旧的环境中是没有问题的,研发那边在确认中。
- 中间件的问题,因为此次版本的升级,中间件比较稳定,核心系统已经有正常使用的系统,很大可能是排除,难不成无解了吗?????
查看中间件升级后新版本与旧版本的特性,发现新版本支持http3的协议,让禁用即可。后测试正常。
解决方案:
-Dweblogic.http.disablehttp2=true,
将这个参数加到setDomainEnv.sh里的最后一个 JAVA_OPTION 的引号里