어셈블된 EJB 모듈에서 CMP(Container Managed Persistence)에 대한 시퀀스 그룹화

CMP(Container-Managed Persistence) Bean을 포함하는 EJB(Enterprise JavaBeans) 모듈을 어셈블한 후, 애플리케이션 실행 중에 특정 유형의 데이터베이스 관련 예외가 발생하지 않도록 할 수 있습니다. 시퀀스 그룹화를 사용하여 엔티티 Bean이 관계형 데이터베이스 테이블을 업데이트하는 시퀀스를 지정할 수 있습니다.

참고: 엔티티 Bean은 EJB 3.x 모듈에서는 지원되지 않습니다.

RI(참조 무결성) 위반으로 인한 예외 제거

시퀀스 그룹화는 특히 데이터베이스 RI(참조 무결성) 위반을 예방하는 데 유용합니다. 데이터베이스 RI 정책은 관계의 일관성을 유지하기 위해 데이터베이스 테이블에 데이터를 쓰고 삭제하는 규칙에 대해 설명합니다. 그러나 Bean 지속성을 관리하기 위한 런타임 요구사항으로 인해 EJB 애플리케이션이 RI 규칙을 위반하여 결과적으로 데이터베이스 예외가 발생할 수 있습니다. 이런 런타임 요구사항은 다음을 지시합니다.
  • 엔티티 Bean이 작성되고 제거 조작이 메소드가 호출되는 즉시 데이터베이스에 상관됩니다.
  • 엔티티 Bean 변경이 파인더 메소드가 호출되거나 트랜잭션이 종료될 때까지 EJB 컨테이너에서 캐시됩니다.
결과적으로 엔티티 Bean이 데이터베이스를 업데이트하는 순서는 예측할 수 없습니다. 이러한 무작위성으로 인해 애플리케이션이 데이터베이스 RI를 위반할 위험이 커지게 됩니다. 일괄처리에 대해 연산이 이런 런타임 요구사항을 대체하더라도 지정된 모든 RI 정책을 사용하는 Bean 지속 시퀀스가 보장되지 않습니다.

데이터베이스 RI를 사용하는 지속 시퀀스를 보장하는 유일한 방법은 사용자가 어셈블리 도구의 EJB 배치 디스크립터 편집기에서 수행하는 시퀀스를 지정하는 것입니다. 시퀀스 그룹화 기능을 통해 Bean을 CMP 그룹에 지정합니다. 각 그룹 내에서 지속성 관리자가 Bean 데이터를 데이터베이스에 삽입하여 RI를 위반하지 않고 업데이트를 수행하는 순서를 지정합니다.

시퀀스 그룹 지정에 대한 자세한 지시사항은 CMP 순서 그룹에 대한 런타임 설정 주제를 참조하십시오. 동기화해야 하는 RI 정책에 대해서는 데이터베이스 관리자에게 문의하십시오.

낙관적 동시성 제어 설계를 위한 예외 위험 최소화

시퀀스 그룹을 지정하면 낙관적 동시성 제어를 위해 구성된 엔티티 Bean에 대한 트랜잭션 롤백 예외의 위험도 줄일 수 있습니다. 이러한 동시성 제어 설계에서는 데이터베이스가 최소 시간 동안 잠겨 있어 최대 트랜잭션이 데이터에 대해 일관성있는 액세스를 할 수 있습니다. 데이터베이스에 대해 상대적으로 제한적이지 않은 상태로 인해 두 개의 공통적인 이유로 트랜잭션에 롤백 예외가 발생할 수 있습니다.
  • 동시에 트랜잭션이 동일한 테이블 행 잠금을 시도하면 데이터베이스 교착 상태가 발생합니다.
  • 트랜잭션은 애플리케이션 로직을 위반하는 순서로 발생할 수 있습니다.

이런 시나리오가 덜 발생하도록 하려면 시퀀스 그룹화 기능을 사용하여 Bean 지속성의 순서를 지정하십시오.


주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_sequence
파일 이름:cejb_sequence.html