内存不足时的 Java EE 堆转储

Posted

技术标签:

【中文标题】内存不足时的 Java EE 堆转储【英文标题】:Java EE heap dump on Out of Memory 【发布时间】:2019-12-16 01:47:19 【问题描述】:

我正在使用 EJB v3.1。应用程序正在 JBoss 中运行。我也在使用 Wildfly。据我了解,包括 OutOfMemoryError 在内的所有系统异常都包含在 EJBException 中。 我设置 jvm 参数以在内存不足时获取堆转储,如下所示: -XX:+HeapDumpOnOutOfMemoryError 但它不起作用。我想是因为它不再是 OutOfMemoryError 而是 EJBException。 我如何让它在 jave ee 中工作? 我还应该在抛出新的 OutOfMemoryError 时获取堆转储吗?

【问题讨论】:

【参考方案1】:

如何让这个在 jave ee 中工作?我还应该在抛出新的 OutOfMemoryError 时获取堆转储吗?

如果您使用的是 JBoss,您应该查看 server.log 并查看异常是 EJB 还是 OOME,然后尝试修复它。

所以我们有:

如何让这个在 jave ee 中工作?见异常。 我还应该在抛出新的 OutOfMemoryError 时获得堆转储吗?是的,如果您正确使用了标志:-XX:+HeapDumpOnOutOfMemoryError

【讨论】:

以上是关于内存不足时的 Java EE 堆转储的主要内容,如果未能解决你的问题,请参考以下文章

使用 VisualVm 分析堆转储时出现内存不足错误

ConnectionQueueStatsProvider 出现内存不足错误

内存不足错误发生在堆大小高但分配大小低的情况下。为啥?

内存不足异常 + 分析 hprof 文件转储

理解 JVM 内存分配和 Java 内存不足:堆空间

HSQL 和 Hibernate - 许多删除语句上的内存不足错误