0
我們有一個觸發作業並執行一些導入/導出處理的計時器。但是在提交時我們打開標題中的錯誤。我們已經嘗試了幾種解決方案已經:ARJUNA016053:無法提交事務 - JavaEE6計時器
1)創建2類:
@Stateless
public class MyBean {
@Inject
@JpaForJobs
private EntityManager em;
@Inject
private MyService1 service1;
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void migrate(...) {
service1.create(...);
}
}
@Startup
@Singleton
public class MyService1 implements Job {
@Resource
TimerService timerService;
@Inject
private MyBean myBean;
@Timeout
public void trigger(Timer timer) {
migrate();
}
private void migrate() {
myBean.migrate();
}
}
作品,但有時當關系變得複雜,它失敗。示例客戶有學生有父母有貓。
我也試過Bean管理的事務,但同樣的結局:
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class MyBean {
@Inject
@JpaForJobs
private EntityManager em;
@Inject
private MyService1 service1;
public void migrate(...) {
utx.begin();
service1.create(...);
utx.commit();
}
}
@Startup
@Singleton
public class MyService1 implements Job {
@Resource
TimerService timerService;
@Inject
private MyBean myBean;
@Timeout
public void trigger(Timer timer) {
migrate();
}
private void migrate() {
myBean.migrate();
}
}
任何想法或建議?謝謝。