두 개의 stateless EJB가 있습니다. 하나는 컨테이너 관리 트랜잭션을 사용하고 다른 하나는 빈을 관리합니다. 컨테이너 관리 EJB에서 빈 관리 EJB 메소드를 호출합니다. public class firstEJB{
public void myMethod(){
ejb.longRunningMethod();
}
@EJ
트랜잭션 의미 및 상태 충만도는 EJB3의 구현 세부 사항으로 간주됩니다. 구현은 bean 또는 컨테이너 관리 트랜잭션 사용 여부를 결정할 수 있습니다. 컨테이너 관리 트랜잭션 유형을 결정할 수 있습니다. 스테이트 풀인지 스테이트 레인지를 결정할 수 있습니다. 그러나 논리적으로 중요한 인터페이스 세부 정보입니다. 예 : (a) 빈 관리 트랜잭션을 사용하는
고객을 타사 시스템에 프로비저닝하는 일반적인 엔터프라이즈 애플리케이션을 개발했습니다. 이 시스템에는 특정 고객에 대해 하나의 스레드 만 작동 할 수 있다는 제한이 있습니다. 그래서 우리는 @Singleton으로 구성된 간단한 잠금 메커니즘을 추가했습니다. 여기에는 현재 진행중인 고객 번호 Set이 포함되어 있습니다. 프로비저닝을위한 새로운 요청이있을 때마다
EJB에서 새로운 기능입니다. 빈 관리 트랜잭션 (BMT)의 부작용 중 하나는 다른 BMT 빈의 메소드를 호출하면 트랜잭션이 전파되지 않는다는 것입니다. 그러나 세 번째 ACID 속성 (분리)으로 인해 두 번째 메서드 (inner)가 첫 번째 메서드 (outer)에서 변경된 내용을 보지 못합니다.