Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/npm/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa UserTransaction线程在使用单例会话Bean和并发时是否安全?_Jpa_Concurrency_Singleton_Jta_Java Ee 8 - Fatal编程技术网

Jpa UserTransaction线程在使用单例会话Bean和并发时是否安全?

Jpa UserTransaction线程在使用单例会话Bean和并发时是否安全?,jpa,concurrency,singleton,jta,java-ee-8,Jpa,Concurrency,Singleton,Jta,Java Ee 8,我正在使用Bean管理的事务和容器管理的实体管理器。我的项目使用JBoss应用服务器。 我有下面的代码 @启动 @独生子女 @TransactionManagement(TransactionManagementType.BEAN) 公共类myClass{ @PersistenceContext(unitName=“name”) 实体管理器; @资源 私人用户交易; 公共无效多布西宁药物(){ tx.begin(); em.joinTransaction(); //做一些工作人员 tx.comm

我正在使用Bean管理的事务和容器管理的实体管理器。我的项目使用JBoss应用服务器。 我有下面的代码

@启动
@独生子女
@TransactionManagement(TransactionManagementType.BEAN)
公共类myClass{
@PersistenceContext(unitName=“name”)
实体管理器;
@资源
私人用户交易;
公共无效多布西宁药物(){
tx.begin();
em.joinTransaction();
//做一些工作人员
tx.commit();
}
}
doBussinesLogic()方法在多个线程中同时调用。这意味着线程共享singleton的EntityManager和UserTransaction。根据本文第10.4点,我知道EntityEnabler在中是线程安全的,但我不确定UserTransaction

  • 这些线程是否使用相同的UserTransaction(因为Singleton Bean)?如果是,安全吗
  • 这里是否需要使用“em.joinTransaction();”
  • 我希望并行处理doBussinsLogic方法,因此我希望这些线程不会相互锁定,因此它们必须使用不同的事务。另一方面,我必须使用单例会话Bean。有什么解决办法吗