2

我意识到任何使用休眠的应用程序都无法在 Glassfish 2.1.1 中完全取消部署。许多类在取消部署过程后仍保留在内存中,您可以使用 jmap 和 jhat 进行检查。

我做了几次测试,发现只有休眠的应用程序没有一个 clen undeploy 进程。在所有情况下,我的 Hibernate 数据库提供程序都是 jTDS 1.2.5。

您甚至不需要运行应用程序。如果您只是部署,然后立即取消部署,您将在内存中实现多个类,许多来自您的应用程序,许多来自 hibernate 及其依赖项。

是否可以在 Glassfish v2.1.1 中进行干净的取消部署?我一直在用完 permgen 空间。

4

1 回答 1

0

这不是一个确定的答案,但如果您使用的是 hibernate,它至少可以最大限度地减少与 glassfish 相关的取消部署问题:

  • 不要在您的实体中使用枚举。改为创建常规课程。
  • 只注释方法,不要注释属性。

这两项可以帮助最小化问题,但不要让它们摆脱您的开发环境。即使您不使用休眠,即使在取消部署之后,您的会话 bean 也会永远留在内存中。

于 2010-02-18T10:55:53.913 回答