-1

我将我的应用程序从IBM JDK (IBM J9 VM)移至OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)。在 IBM JDK 环境中,我们使用 WebSphere,而在 OpenJDK 中,我们使用 Tomcat。
在我们得到这个例外之前,一切都很好。该应用程序在 IBM JDK 和 WebSphere 环境中愉快地运行。

Exception in thread "ajp-bio-14004-exec-462" java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space

无论如何,我可以通过运行一些命令来了解两个 Java 环境的默认 PermGen 是什么。我搜索了互联网并浏览了一些文件,没有运气。我也试过 kill -3 。

4

2 回答 2

1

它取决于 IBM 上的每个 JVM,DTFJ 概述工具应该提供信息,

对于 OpenJDK,您可以尝试使用 jvisualvm 或 jconsole UI 工具或命令行工具。

于 2017-07-31T13:22:35.097 回答
1

Hotspot build 25.131-b11 看起来像 OpenJDK 8 版本,但是 OpenJDK 8 不会抛出PermGen 空间 OutOfMemoryError异常。抛出它的代码不再存在,因为永久代已从垃圾收集器中删除。

您确定您正在使用预期的 JVM 运行您的应用程序吗?

于 2017-07-31T17:25:17.187 回答