У меня есть staleless сессионный компонент с следующим способом:Container Managed транзакции RollBack
public void process(){
try {
// function which inserts some data
Properties properties = new Properties();
InitialContext ic = new InitialContext(properties);
CouponBatchSessionBeanRemote CBSBR = (CouponBatchSessionBeanRemote) ic.lookup(CouponBatchSessionBeanRemote.class.getName());
CBSBR.createCouponBatchFromPlantAppFile(batch);
} catch (Exception e1) {
context.setRollbackOnly();
try {
Properties properties = new Properties();
InitialContext ic = new InitialContext(properties);
RPMRequestSessionBeanRemote RPMRq = (RPMRequestSessionBeanRemote) ic.lookup(RPMRequestSessionBeanRemote.class.getName());
RPMRq.updateRPMRqState(RPMRQID, "E");
} catch (Exception e1) { }
}
}
Теперь в первом блоке попробовать, если произошла ошибка транзакции является rolledback. Однако после вызова context.setrollbackonly() следующая транзакция try block не выполняется. Исключенное исключение - это откат транзакции.
Есть ли исключения? –
Исключение - это откат транзакции. –