java - 当没有调用 @Remove 注释方法时,有状态 session bean 会导致泄漏吗?

标签 java ejb ejb-3.0

我有一个 JSF 应用程序,它在托管 bean 中从远程有状态 session bean (EJB 3.0) 调用业务逻辑。

现在有一个 HttpSessionListener 调用该有状态 session bean 上的 @Remove 注释方法,因此一旦 HttpSession 被销毁,容器就可以删除有状态 session bean。

现在我想知道如果我不调用带@Remove 注释的方法并且 HttpSession 被销毁会发生什么。有状态 session bean 的客户端此时不存在记录器。容器会删除有状态 session bean 吗?或者它会永远存在导致某种泄漏(内存/磁盘)?

最佳答案

是的,容器将在超时时删除未使用的有状态 session bean。无论如何,当不再需要 bean 的状态时调用 @Remove 注释方法是要遵循的模式。

有状态 session bean 的删除超时可以在您的应用程序服务器的设置中设置。

关于java - 当没有调用 @Remove 注释方法时,有状态 session bean 会导致泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260347/

相关文章:

两个耦合类中的 Java EE EJB 注入(inject)

java - Websphere Liberty Base 17 上的 EJBConfigurationException

java - 远程ejb方法参数隔离

java - Java中如何创建这三个线程

java - 有没有办法使用Log4j2中的RoutingAppender基于Marker路由日志

java - 从数据库检索数据时出现异常 org.hibernate.hql.ast.QuerySyntaxException :

java - 调用 entityManager.getTransaction() 时出现 EJBException

sql - 通过 Ant 构建文件创建数据库(而不是填充它)

java - 如何摆脱 this() 构造函数中的长调用?

java - 生成java头文件时出错