java - 在 Tomcat 中启用飞行记录器会导致 "Error when initializing JFR"

标签 java tomcat tomcat8 catalina java-mission-control

-XX:+FlightRecorder 添加到我的 CATALINA_OPTS 会导致我的 catalina.out 日志中出现此错误:

Error when initializing JFR. JFR will be deactivated.

java.lang.Exception: Unable to create JFR repository directory using base location (/var/cache/tomcat6/temp).
        at oracle.jrockit.jfr.Repository.create(Repository.java:62)
        at oracle.jrockit.jfr.Repository.<init>(Repository.java:26)
        at oracle.jrockit.jfr.JFRImpl.<init>(JFRImpl.java:108)
        at oracle.jrockit.jfr.VMJFR.<init>(VMJFR.java:55)
        at oracle.jrockit.jfr.VMJFR.create(VMJFR.java:393)
        at oracle.jrockit.jfr.JFR.init(JFR.java:91)
Error occurred during initialization of VM
Failed to start tracing backend.

以下是来自 /usr/share/tomcat8/bin/setenv.sh 的完整 CATALINA_OPTS:

export CATALINA_OPTS="-Dcom.sun.management.jmxremote=true \
              -Dcom.sun.management.jmxremote.port=9090 \
              -Dcom.sun.management.jmxremote.ssl=false \
              -Dcom.sun.management.jmxremote.authenticate=false \
              -Djava.rmi.server.hostname=10.202.210.173 \
              -XX:+UnlockCommercialFeatures -XX:+FlightRecorder"

如果我只启用 -XX:+UnlockCommercialFeatures 参数,tomcat 实例不会崩溃,但一旦我启用 FlightRecorder,它就会崩溃。我也用 JAVA_OPTS 尝试过,得到了相同的结果。

我只是按照互联网上的教程为 Tomcat 启用飞行记录器,所以我真的不知道我可能做错了什么。在我看来,一切都很顺利。

这是在 64 位 CentOS 6.4 机器上,带有 Tomcat 8。

最佳答案

Flight Recorder 尝试创建存储库目录以在记录时存储临时数据。

基目录是系统属性java.io.tmpdir指向的目录。由于某种原因,Java 进程无法访问或创建那里的目录。也许Java进程没有权限?

关于java - 在 Tomcat 中启用飞行记录器会导致 "Error when initializing JFR",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32640705/

相关文章:

tomcat - 以编程方式启用 GZIP Tomcat 7(嵌入式)

java - classcastexception : cant be cast to com. sun.jersey.spi.container.servlet.ServletContainer

ssl - org.apache.coyote.http11.AbstractHttp11Processor.process 解析 HTTP 请求 header 时出错

java - 仅在 1 或 4 台服务器上出现 java/tomcat 异常

java - 错误 : incompatible types: <anonymous Observer<AverageBudget>> cannot be converted to Observer<? super 列表<平均预算>>

java - @DeclareRoles 在 Jersey-2 中应该如何使用?

java - ServletException 还是 IOException?

tomcat - 同时使用 SSL 和未加密运行 Spring Boot 应用程序(嵌入式 Tomcat)

java - 在多个类中使用相同的约束

java - 为什么 BFS 在这种情况下不保证最小成本路径?