我正在阅读一本关于JPA和EJB的书,它有一条线说明:
" Singleton会话bean可以使用容器管理或bean管理的并发。默认值为容器管理,对应于所有业务方法的写锁定。 所有业务方法调用都是序列化的,因此在任何给定时间只有一个客户端可以访问bean。同步过程的实际实现是特定于供应商的。"
序列化方法调用是什么意思,为什么只保证一个客户端可以在任何给定时间访问bean?
答案 0 :(得分:5)
通过“序列化”,它们意味着“一次完成一个”(所以不要与对象序列化混淆)。
每个Singleton会话Bean都有一个与之关联的锁,一次可以由一个客户端使用。因此,如果您使用的是Singleton会话Bean并具有写锁定,则无法使用它并且必须等待。一旦你释放你的锁,我(可能)抓住它并能够使用它,让任何想要使用它的人等到我释放锁。
修改:我找到了Singleton Session Bean locks and how/when to use them的一个很好的解释。