我正在读一本关于 JPA 和 EJB 的书,其中有一行内容:
“单例 session bean可以使用容器管理或bean管理的并发。默认是容器管理的,这对应于所有业务方法上的写锁。所有业务方法调用都是序列化的,以便只有一个客户端可以在任何给定时间访问 bean。 同步过程的实际实现是特定于供应商的。”
方法调用被序列化意味着什么?为什么这保证在任何给定时间只有一个客户端可以访问该 bean?
最佳答案
“序列化”的意思是“一次完成一个”(所以不要与对象序列化混淆)。
每个 Singleton Session Bean 都有一个与其关联的锁,一次可由一个客户端使用。因此,如果您使用的是 Singleton Session Bean 并且有写锁,我就无法使用它,必须等待。一旦你释放了锁,我(大概)就会捕获它并能够使用它,让其他想要使用它的人等到我释放锁。
编辑:我找到了一个很好的解释 Singleton Session Bean locks and how/when to use them 。
关于java - 序列化方法调用是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27829232/