休息是无国籍的。客户端维护应用程序状态,服务器维护资源状在状态应用程序中,该状态是在哪里维护的?它是在会话中还是在内存数据库或其他任何内容中维护的?
答案 0 :(得分:0)
来自oracle文档:
什么是有状态会话Bean?
有状态会话bean是一个维持会话状态的会话bean。
有状态会话bean对于会话会话非常有用,在这些会话中,必须在方法调用之间维护状态,例如实例变量值或事务状态。这些会话bean在该客户端的生命周期中映射到单个客户端。
有状态会话bean在方法调用之间维护其状态。因此,为每个客户端创建了一个有状态会话bean的实例。每个有状态会话bean都包含一个标识以及与单个客户端的一对一映射。
当容器确定它必须从内存中删除有状态会话bean时(为了释放资源),容器通过钝化维护bean的状态(将bean序列化为磁盘)。这就是您钝化的状态必须是可序列化的原因。但是,此信息不会在系统故障中存在。当客户端再次请求bean实例时,容器会激活先前钝化的bean实例。
保存的状态类型不包括资源。容器调用bean中的ejbPassivate方法,以便为bean提供清理其资源的机会,例如持有的套接字,数据库连接和具有静态信息的哈希表。所有这些资源都可以在ejbActivate方法中重新分配和重新创建。
https://docs.oracle.com/html/E13981_01/undejbs002.htm
请记住"将bean序列化为磁盘" ,请注意这是oracle的实现,并不意味着所有实现都是以这种方式完成的。