Rollback 처리에 대한 문의
- 작성자 :
- 허*목
- 작성일 :
- 2012-07-25 15:31:30
- 조회수 :
- 1,914
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
현재 Transaction 에 대한 설정은 표준프레임워크 가이드대로 잘 동작을 하고 있습니다.
그런데..
Impl Class에서 특정 로직을 수행하여 결과 구분에 따라서 (예:N이면 Rollback)
이전까지의 Transaction을 명시적으로 Rollback 처리를 하고 에러 페이지로의 forwarding 이 아닌 정상적으로 결과페이지를 표기하도록 처리하려하는데
해당 구분을
try {
//VO에 결과 저장
HashMap<String, String> rVo = new HashMap<String, String>();
rVo.put("retStatus", rStatus);
oList.add(rVo);
if("Y".equals(rStatus)) { //필수항목을 미입력했으면 Rollback을 위한 Exception처리
Exception ex = new Exception();
System.out.println("##### Raist Exception");
throw ex;
}
} catch(Exception e) {
//nothting
System.out.println("##### Catch Exception");
}
return oList;
위와 같이 처리했을 때 rollback이 되지 않아서 방법을 문의 드리오니 답변바랍니다.
그런데..
Impl Class에서 특정 로직을 수행하여 결과 구분에 따라서 (예:N이면 Rollback)
이전까지의 Transaction을 명시적으로 Rollback 처리를 하고 에러 페이지로의 forwarding 이 아닌 정상적으로 결과페이지를 표기하도록 처리하려하는데
해당 구분을
try {
//VO에 결과 저장
HashMap<String, String> rVo = new HashMap<String, String>();
rVo.put("retStatus", rStatus);
oList.add(rVo);
if("Y".equals(rStatus)) { //필수항목을 미입력했으면 Rollback을 위한 Exception처리
Exception ex = new Exception();
System.out.println("##### Raist Exception");
throw ex;
}
} catch(Exception e) {
//nothting
System.out.println("##### Catch Exception");
}
return oList;
위와 같이 처리했을 때 rollback이 되지 않아서 방법을 문의 드리오니 답변바랍니다.
A
안녕하세요.. 허홍목님..
Exception을 catch만 하시고.. 상단에 throw를 하지 않으셨기 때문에..
TransactionManager는 Exception이 발생했는지를 알지 못합니다..
그래서.. rollback 처리가 되지 않은 것이구요..
} catch(Exception e) {
//nothting
System.out.println("##### Catch Exception");
throw e;
}
이와 같이 throw 를 추가하시면 되실 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
Exception을 catch만 하시고.. 상단에 throw를 하지 않으셨기 때문에..
TransactionManager는 Exception이 발생했는지를 알지 못합니다..
그래서.. rollback 처리가 되지 않은 것이구요..
} catch(Exception e) {
//nothting
System.out.println("##### Catch Exception");
throw e;
}
이와 같이 throw 를 추가하시면 되실 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.