2

以下模式是否存在任何线程安全问题或其他代码异味?

使用容器管理的 EntityManager 注入的无状态 EJB3 bean:

@Stateless
public class ServiceA implements IServiceA.ILocal {
    @PersistenceContext(unitName="foo")
    private EntityManager em
    ...

.. 然后用上面的服务 bean 注入 View-scoped JSF-managed backing bean:

@ManagedBean
@ViewScoped
public class PageFooController {
    @EJB
    private IServiceA.ILocal serviceA;
    ....

部署环境是具有默认 Hibernate JPA 实现的 JBoss 7。

我要问的原因是,在模拟数百个用户的压力测试中,我们注意到损坏的 JPA 实体值(数据库中不存在的值),这可能表明处理 JPA 实体的实体管理器存在一些竞争条件/线程不安全访问。

4

0 回答 0