Enterprise JavaBeans Data Mediator Service
EJB(Enterprise JavaBeans) DMS(Data Mediator Service)는 다양한 유형의 DataObjects를 포함하는 DataGraph로 데이터를 리턴하고 EJB 조회 양식으로 요청이 제공되는 SDO(Service Data Objects) Java™ 인터페이스입니다.
EJB DMS는 EJB 조회를 사용하지만 모두 같은 유형의 EJB 오브젝트 콜렉션 또는 CMP(Container Managed Persistence) 콜렉션 값을 리턴하는 일반 EJB 파인더 또는 ejbSelect 메소드와 다릅니다.
컨테이너에 캐시된 EJB 인스턴스에서 getGraph 호출을 사용하거나 조회 요청을 SQL로 컴파일하고 데이터 소스에 대해 직접 실행하여 DataGraph를 확보할 수 있습니다.
업데이트된 DataObjects는 두 방법 중 하나로 applyChanges 메소드를 사용하여 다시 데이터 저장소로 기록할 수 있습니다. 업데이트는 SQL로 변환하여 데이터 저장소에 직접 적용하거나 EJB 액세서 메소드를 통해 다시 기록할 수 있습니다. 데이터 저장소에 직접 다시 쓰면 EJB가 활성화되지 않기 때문에 성능이 향상될 수 있습니다. 그렇지만 애플리케이션에 비즈니스 논리 또는 EJB 컨테이너 기능이 필요한 경우에는 EJB를 통해 다시 기록하는 것이 바람직합니다. EJB를 통해 다시 쓰는 경우에는 변경된 DataObjects를 사용자 정의하여 처리할 수 있도록 사용자 정의 MediatorAdapter 메소드를 지정할 수 있습니다. 이 사용자 정의는 애플리케이션별 낙관적 동시성 제어, 업데이트를 수행하기 위한 EJB에서 비즈니스 메소드에 대한 호출, DataObject에서의 계산된 값 업데이트, EJBHome에서 애플리케이션별 작성 메소드 호출을 포함합니다.
업데이트 처리는 DataGraph가 원래 검색되는 방법에 종속되지 않습니다. 즉, 데이터 소스에서 DataGraph를 직접 검색할 수 있지만 지연 업데이트를 엔터프라이즈 Bean 또는 다른 방법으로 적용할 수도 있습니다.
사용하는 업데이트 방법에 상관없이 변경이 예상되지 않는 동시성 제어 알고리즘이 사용됩니다. 일관성 필드로 지정된 필드는 현재 값이 DataObject 필드의 이전 값과 동일하도록 하기 위해 업데이트 중에 읽습니다.
런타임 처리
EJB 중개자 요청은 일반 EJB 조회의 정렬된 목록으로 구성되는 복합 EJB 조회입니다. 복합 조회의 각 조회는 SDO를 정의합니다. 조회의 SELECT 절은 DataObject로 리턴할 CMP 필드 또는 표현식을 지정합니다. WHERE 절은 필터링 조건을 지정합니다. 목록의 첫 번째 조회는 DataGraph의 ROOT 노드로 간주됩니다. 첫 번째가 아닌 조회의 FROM 절은 DataObjects 사이의 관계를 작성하는 데 사용되는 EJB 관계를 지정합니다. DataGraph 스키마가 조회에서 파생되는 방법에 대한 자세한 정보는 DataGraph 스키마 주제에서 찾을 수 있습니다.