У нас есть таймер, который запускает задание и выполняет некоторую обработку импорта/экспорта. Но при фиксации мы открываем сообщение об ошибке в заголовке. Мы пытались несколько решений уже: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();
}
}
работы иногда, но когда отношения осложнится это потерпеть неудачу. Пример. У клиента есть родители, у которых есть кошки.
Я также попробовал боб удалось сделку, но такой же конец:
@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();
}
}
Любая идея или предложения? Благодарю.