기술지원 문의

EJB에서 트랜잭션 지원과 관련한 처리??
정은선 / 2004-10-27 23:59

현재 RESIN을 EJB서버로 사용하고 리눅스 기반 + 레진 + 아파치로 개발하고 있습니다.

EJB bean은 stateless session bean을 이용하여
JSP -> Broker -> EJB Bean -> DataBaseAcess 로 DB를 접근합니다.

궁금한것은 세션빈의 트랜잭션 타입을 container 에 맡길때..
EJB Bean내에서 DataBaseAcess Class의 여러 메소드를 한 트랜잭션 내에서 관리가 되는지 궁금합니다.
DataBaseAcess Class의 각각의 메소드들은 각각의 커넥션을 사용하고 있습니다.

EJB Bean 메소드1() {
     try{
         1. DataBaseAcess Class 메소드1();
         2. DataBaseAcess Class 메소드2();
         3. DataBaseAcess Class 메소드3();
     }catch(Exception e){
         // Exception 처리
     }
}

EJB Bean내에서 1번 2번 메소드를 처리하고 3번 메소드를 처리하던중 3번의 메소드가 System레벨의 Exception을 일으켜 EJB Bean으로 Exception이 돌아오면 1번 2번 메소들의 처리 또한 롤백이 되는지요?

디플로이먼트 디스크립터 내에서 선언되는 트랜잭션 속성은 
1.EJB Bean의 메소드들에만 적용이 돼는지
2.EJB Bean의 메소드 내의 모든 처리-위와같이 다른 클래스의 메소들까지 포함- 에 까지 적용이 돼는지
궁금합니다.

웹로직이나 웹스피어는 stateless session bean이라 할지라도 트랜잭션 관리를 컨테이너에 맡긴 경우라면
2번 처럼 처리해 주는데, 레진은 그렇지가 않는지요??

그럼.. 항상 수고하시고..

[Re]EJB에서 트랜잭션 지원과 관련한 처리??
관리자 / 2004-11-01 11:23

EJB에서 호출은 하는 Class는 EJB의 속성을 고스란히 물려받습니다. 

물론, 다른 EJB나 다른 트랜잭션 속성등을 가지고 있다면 예외사항이 되겠네요.

어떤식으로 소스가 구성되어 있는지 모르겠지만, 웹로직이나 웹스페이어스는 된다고 하셨으니까.

당연히 Resin Enterprise에서도 됩니다. 이 부분은 WAS성격보다는 EJB 스펙 준수 문제라고 생각되네요.

그리고,
CMP로 사용하신다면 훨씬 좋은 기능을 내실겁니다. 참고하세요.