액세스 목적 서비스

액세스 목적은 애플리케이션의 지속성을 정밀하게 관리할 수 있도록 해주는 애플리케이션 서버 런타임 서비스입니다.

액세스 목적 서비스는 EJB(Enterprise JavaBeans) 컨테이너 및 해당 에이전트가 사용하는 선언 어노테이션 세트를 정의하여 엔티티 Bean 액세스를 위해 성능을 최적화합니다. 이러한 어노테이션은 액세스 목적 정책이라고 하는 세트로 구성됩니다.

액세스 목적 정책에는 EJB 컨테이너 및 해당 에이전트에 의해 힌트로 간주되는 어노테이션 세트가 있습니다. 대부분의 액세스 목적 정책은 특정 백엔드 자원 관리자로 맵핑할 수 있는 상위 레벨 추상을 나타내는 힌트입니다. 지속 세부사항을 수행할 때 필요한 동시성 제어, 연결 및 캐시 관리를 확인하는 것은 EJB 지속 시스템이 담당합니다. EJB 지속성 관리자는 지정된 태스크를 수행할 때 액세스 목적 힌트를 사용하여 더 나은 성능 결정을 수행할 수 있습니다. 적은 수의 액세스 목적은 EJB 컨테이너에 힌트이며 EJB 콜렉션 관리에 영향을 줍니다.

일반적으로 애플리케이션에 대한 Bean 레벨 액세스 목적을 구성합니다. 애플리케이션 프로파일 범위 내에서 Bean에 액세스 목적 정책을 적용할 수도 있습니다. 결과적으로 다중 및 반대 액세스 목적 정책으로 Bean을 구성할 수 있습니다. 애플리케이션 프로파일링 문서에서는 하나의 요청에 대한 특정 액세스 정책을 Bean에 적용하기 위해 애플리케이션을 구성한 후 다른 요청에 대한 다른 액세스 목적 정책을 동일한 Bean에 적용하는 방법을 보다 자세히 설명합니다.

메소드 레벨에서의 액세스 목적 정책 적용 지원은 WebSphere® Application Server 버전 6.0에서는 더 이상 사용되지 않습니다. 액세스 목적을 구성하는 이 연습에서는 정책이 그러한 메소드에 대한 모든 요청의 기본 액세스 목적이 되도록 EJB 모듈의 범위 내에서 메소드에 정책을 적용합니다.

액세스 목적 디자인 고려사항

우수 사례: 애플리케이션의 과도한 조정은 자제하십시오. 액세스 목적 서비스를 잘못 사용하면 오류가 발생합니다. 예를 들어, wsPessimisticUpdate-NoCollision 정책을 잘못 사용하면 업데이트가 누락됩니다. 콜렉션 증분 값을 잘못 설정하면 성능 문제가 발생하며 여러 액세스 목적 정책으로 애플리케이션을 구성하는 경우 문제점 판별은 더 어려워집니다.
참고: 액세스 목적 서비스를 사용하는 경우에는 명료성과 단순성이 중요한 원칙으로 사용되어야 합니다. 이는 애플리케이션 프로파일 범위 내에서 액세스 목적 정책을 적용하는 경우에는 더욱 중요합니다.

액세스 목적 정책이 엔티티 Bean의 방법으로 구성되더라도 정책의 일부 속성은 특정 조건하의 런타임 환경에서만 사용될 수 있습니다. 예를 들어, 동시성 및 액세스 목적은 ejbLoad 메소드가 연결을 열고 제공된 자원에서 데이터를 읽기 위해 구동될 때 CMP 엔티티 Bean에 대해서만 사용됩니다. 해당 데이터는 캐시되어 ejbStore 메소드 호출 중에 적절한 조회를 구동하는 데 사용됩니다. 미리 읽기 힌트는 Bean에 대한 파인더 실행 중에만 사용됩니다. 콜렉션 증분 및 자원 관리자 프리페치 증분은 다중 오브젝트 파인더에만 사용됩니다. 정책을 사용하지 않는 메소드에서 정책을 구성하는 것은 오류가 아닙니다. 임의 정책의 특정 속성만 사용되며 정책이 메소드에 제대로 적용된 경우에도 마찬가지입니다. 그렇지만 애플리케이션에서 정책을 불필요하게 구성하면 애플리케이션 디자인이 모호해지고 애플리케이션 유지보수는 복잡해집니다.

BMP 엔티티 Bean의 액세스 목적

액세스 목적의 선언 기능은 CMP 엔티티 Bean 개발자에게는 강력한 기능입니다. 애플리케이션에서 지속성 로직을 명시적으로 전혀 관리하지 않고도 지속성에 대한 세부사항을 제품이 관리하는 방법에 대해 힌트를 제공할 수 있습니다. 그렇지만 BMP 엔티티 Bean을 개발해야 하는 경우가 있습니다. BMP와 CMP 컴포넌트 사이에서 의미있는 차이점은 단지 누가 지속성 로직을 제공하는지이기 때문에 BMP 엔티티 Bean은 제품이 CMP 엔티티 Bean을 대신하여 수행하는 것처럼 액세스 목적 힌트를 사용할 수 있어야 합니다. 액세스 목적 서비스를 사용하는 BMP 엔티티 Bean은 애플리케이션 프로파일에 참여합니다. 즉, 액세스 목적 속성 값이 요청 시마다 다르므로 BMP 엔티티 Bean이 계속해서 지속 전략을 수정할 수 있습니다.

CMP 엔티티 Bean 메소드 및 BMP 엔티티 Bean 메소드에 액세스 목적 정책을 적용할 수 있습니다. 원래 액세스 목적 힌트는 반드시 사용해야 하는 것이 아니기 때문에 BMP 엔티티 Bean이 액세스 목적 힌트를 사용할 의무는 없습니다. BMP 엔티티 Bean은 특정 Bean에 중요한 액세스 목적 속성만을 사용하는 것으로 예상됩니다.

현재의 액세스 목적 정책은 특정 BMP 엔티티 Bean용 java:comp namespace로 바인드됩니다. 이 정책은 액세스 목적 정책이 검색되는 메소드 호출 지속 기간 동안에만 존재합니다. 일반적인 시나리오라면 ejbStore 메소드 호출 중에 적절한 조치가 수행될 수 있도록 ejbLoad 메소드의 호출 중에 액세스 유형을 캐시하게 됩니다.

액세스 목적의 우수 사례

EJB 메소드에 액세스 목적 정책을 적용할 때는 다음과 같은 문제를 고려하십시오.

  • 항목에 대한 기본 액세스 목적 정책을 구성하여 시작하십시오. 애플리케이션이 빌드되어 시작된 후에 애플리케이션 프로파일링이나 메소드 레벨의 액세스 목적을 사용하여 애플리케이션에서 특정 액세스 경로를 조정할 수 있습니다.
  • 액세스 유형은 혼합하지 마십시오. 동일한 트랜잭션에서 비관적 및 낙관적 모두를 사용하는 것은 피하십시오. 대부분의 데이터베이스의 경우, 비관적과 낙관적 정책은 다른 격리 레벨을 사용합니다. 이로 인해 데이터베이스 연결이 여러 개가 설정되어 연결 공유를 통해 얻을 수 있는 성능상의 혜택을 활용할 수 없게 됩니다.
  • wsPessimisticUpdate-NoCollision 정책 적용 시에는 주의하십시오. 이 정책은 데이터 무결성을 보장하지 않습니다. 데이터베이스 잠금이 유지되지 않으므로, 동시 트랜잭션이 서로의 업데이트를 겹쳐쓸 수 있습니다. 언제든지 한 개의 트랜잭션만 지속적 저장소를 업데이트하는 것이 확실한 경우에만 이 정책을 사용하십시오.

JPA(Java Persistence API) 액세스 목적에 대한 자세한 정보는 JPA 액세스 목적 주제를 참조하십시오.


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



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