2017-05-24 28 views

답변

2

이것은 성능을 높이기 위해 NOT_SUPPORTED을 사용하는 것과 정확하게 일치합니다. 가리키고 오라클에 의해 진술 : 클라이언트가 트랜잭션 내에서 실행하고 엔터프라이즈 빈의 메소드를 호출

NotSupported를 특성

경우, 컨테이너는 메소드를 호출하기 전에 클라이언트의 거래를 일시 중단합니다. 메소드에 이 완료되면 컨테이너는 클라이언트의 트랜잭션을 재개합니다.

클라이언트가 트랜잭션과 연결되어 있지 않으면 컨테이너는 메소드를 실행하기 전에 새 트랜잭션을 시작하지 않습니다.

트랜잭션이 필요하지 않은 메소드에는 NotSupported 속성을 사용하십시오. 트랜잭션에 오버 헤드가 포함되므로 이 속성 은 성능을 향상시킬 수 있습니다..

그래서, 그것은 또는 이 목적은 화면에 데이터 테이블을 채우기 위해 어쩌면이다 비즈니스 방법을 찾을 선택 모두를위한 완벽한 적합합니다.

+1

** ** 개선 될 수 있습니다 **. 성능에 영향을주는 요소는 트랜잭션의 실행 여부와 관계가 없으므로 어디에서나 마이크로 최적화로 시작하는 것이 현명한 아이디어는 아닙니다. – Kayaman

0

NOT_SUPPORTED는 트랜잭션 컨텍스트에서 호출 할 때 예외를 발생시키는 처리가있는 경우에 유용합니다. 예를 들어 XA 처리 컨텍스트가있는 DDL 코드가 포함 된 저장 프로 시저를 호출하면 예외가 발생합니다. 저장 프로 시저를 변경하는 것이 옵션이 아니면 NOT_SUPPORTED 특성을 사용하여 문제가있는 저장 프로 시저를 포함하는 메서드를 호출하기 전에 트랜잭션을 일시 중단하십시오.

읽기 전용 트랜잭션에서 트랜잭션 롤백이 사용 가능한 경우 지원, 트랜잭션 롤백이 읽기 전용 트랜잭션에서 허용되지 않는 경우 NOT_SUPPORTED를 사용하십시오.