Witam, mam problem z transakcjami (chyba przy większym obciążeniu)
nested transactions not supported
W definicji Resource JtaManage = true, w pesristence.xml jta-data-source,
struktura (hierarchia) logiczna jest taka Servlet -> Serwis -> Dao -> Entity
Adnotacji od Transakcji nie mam, Dao przez @Inject jest wrzucane do Serwisów i Servletów, przez @Resource w servlecie wstrzykuję UserTransaction
Przykładowy servlet:
@Inject
TestDao daoTest;
@Inject
TestSerwis serwisTest;
@Resource
UserTransaction utx;
jeśli jest odczyt to w servlecie mam
daoTest.find(12)
serwisTest.pobierz(23);
jeśli jednak mam coś zapisać
utx.begin()
try{
daoTest.save(objectTest);
utx.commit();
}catch(exception e){
if(utx.getStatus() == Status.STATUS_ACTIVE)
utx.rollback();
}
Jeśli dobrze rozumiem
- transakcja nie jest konieczna , jeśli robię odczyt
- jeśli jednak modyfikujemy dane, w serwlecie zaczynam i kończę transakcję, a jej zasięg obejmuje zmiany w niej wykonane
Co robię źle?