You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Weblogic14.1.1搭配OpenJDK11出现chunk rotation报错如何排查解决

问题解决指南

报错可能诱因

  • JFR意外启用:Weblogic 14.1.1默认集成了JFR诊断组件,若域配置中开启了性能分析、飞行记录器相关诊断功能,或是启动参数中隐含-XX:StartFlightRecording类配置,都会触发JFR后台运行,和常规认知里JFR默认关闭的情况不同。
  • 触发IOException的常见场景:
    1. 权限变更:运行周期内如果有系统安全巡检脚本、定时权限整改任务修改了.jfr文件或其父目录的读写权限,会导致JFR无法读取文件大小属性,你看到的.jfr文件为空就是权限不足无法写入导致的,并非JFR没有执行写入动作。
    2. 文件句柄异常:进程长时间运行后出现文件句柄泄漏,达到系统设定的单进程句柄上限,或是JFR持有的chunk文件句柄被意外释放,都会触发文件访问IO异常。
    3. 系统层面锁冲突:Red Hat Enterprise Linux 8.4的内核文件锁机制和JDK11.0.2的JFR文件访问逻辑存在兼容性问题,长时间运行后可能出现锁占用,导致无法读取文件元信息。

获取异常细节的方案

不需要修改JDK内置模块,用JDK自带工具即可拿到完整错误信息:

  1. 开启JFR debug日志:在Weblogic启动参数中添加-Xlog:jfr*=debug,该参数会输出JFR所有内部运行日志,包含该IOException的完整堆栈信息,对业务性能无明显影响。
  2. 报错时抓取进程状态:执行lsof -p <Weblogic进程ID> | grep .jfr查看JFR持有的文件句柄状态,同时用jstack <Weblogic进程ID>抓取线程堆栈,可定位IO异常的直接触发原因。
  3. 追踪系统调用:用strace -p <Weblogic进程ID> -e trace=file可直接捕获JFR访问文件时的系统调用错误码,比如返回EACCES对应权限问题、返回EMFILE对应句柄超限。

排查解决思路

临时规避(无需重启进程)

使用JDK自带jcmd工具直接关闭运行中的JFR记录即可停止报错:

  1. 先执行jcmd <Weblogic进程ID> JFR.check查看当前运行的所有JFR记录
  2. 执行jcmd <Weblogic进程ID> JFR.stop终止所有JFR记录
    该操作不会影响Weblogic核心业务运行,仅会关闭JFR诊断功能。

永久修复(下次重启生效)

彻底禁用JFR功能即可完全解决该问题:

  1. 在Weblogic域的setDomainEnv.sh启动脚本中添加如下参数:
export JAVA_OPTIONS="$JAVA_OPTIONS -XX:-FlightRecorder -XX:FlightRecorderOptions=defaultrecording=false"
  1. 登录Weblogic控制台,进入域配置>诊断>飞行记录器页面,取消所有启用飞行记录器的勾选,避免Weblogic自动启动JFR记录。

同类问题说明

该问题在Weblogic 14.1.1 + JDK11的技术栈下非常常见,已有大量用户反馈过相同报错,根因均为Weblogic默认开启的JFR诊断组件长时间运行后出现文件访问异常,禁用JFR后均未再复现。

内容的提问来源于stack exchange,提问作者Redbirdpat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:24:05