액세스 인텐트 -- 격리 레벨 및 업데이트 잠금
WebSphere® Application Server 액세스 인텐트 정책은 사용자 환경의 다른 관계형 데이터베이스에서 CMP Bean 데이터에 대한 격리 레벨을 정의하는 일관성 있는 방법을 제공합니다.
배치된 애플리케이션 내, 액세스 인텐트 정책 동시성 정의 및 액세스 유형의 조합은 데이터베이스 연결 시 Application Server가 설정한 격리 레벨 값을 나타냅니다. 동시성 및 액세스 유형에 대한 자세한 정보는 기사, 동시성 제어 및 액세스 인텐트와 격리를 참조하십시오. 이 특성의 조합은 JDBC 준비된 명령을 통해 Application Server가 데이터베이스에 전달하는 업데이트 잠금 플래그도 나타냅니다.
데이터베이스는 WebSphere Application Server와 같이 많은 격리 레벨 정의로 제공되지 않습니다. 데이터베이스는 세 유형 중 하나로서만 격리 레벨을 정의합니다. 또한 하나의 매개변수만 수신 연결 시 데이터베이스가 설정한 격리 레벨의 유형을 표시합니다. 각각의 세 유형은 각 데이터베이스 공급업체에서 결정한 대로 다른 매개변수 값으로 표시될 수 있습니다. 예를 들어, 하나의 데이터베이스는 격리 레벨을 RR(JDBC Repeatable read)로 정의될 수 있는 반면, 다른 데이터베이스는 동일한 격리 레벨을 RC(JDBC Read committed)로 정의할 수 있습니다.
이 불일치 때문에, WebSphere Application Server는 액세스 인텐트 정책을 매개변수 값으로 맵핑하지 않습니다. 대신, Application Server는 액세스 인텐트 정책을 모든 데이터베이스 공급업체에서 공통인 격리 레벨의 유형에 맵핑합니다.
액세스 인텐트 프로파일 | 격리 레벨 | 업데이트 잠금 구현 | |||||
---|---|---|---|---|---|---|---|
DB2® | Oracle* | SyBase | Informix® | Apache Derby | SQL 서버 | ||
wsPessimisticUpdate- Weakest LockAtLoad (기본 정책) | RR | RC | RR | RR | RR | RR | No(*Oracle, Yes) |
wsPessimisticUpdate | RR | RC | RR | RR | RR | RR | 예 |
wsPessimisticRead | RR | RC | RR | RR | RR | RR | 아니오 |
wsOptimisticUpdate | RC | RC | RC | RC | RC | RC | 아니오 |
wsOptimisticRead | RC | RC | RC | RC | RC | RC | 아니오 |
wsPessimisticUpdate No-Collisions | RC | RC | RC | RC | RC | RC | 아니오 |
wsPessimisticUpdate- Exclusive | S | S | S | S | S | S | 예 |
- RC = 커미트된 JDBC 읽기
- RR = JDBC 반복 읽기
- S = JDBC 순차적 실행
- * Oracle은 JDBC RR(Repeatable Read)을 지원하지 않습니다. 그러므로, wsPessimisticUpdate-weakestLockAtLoad 및 wsPessimisticUpdate는 wsPessismisticRead 및 wsOptimisticRead와 같은 방식으로 Oracle에서 동작합니다. Oracle 제한사항 때문에 OracleXADataSource JDBC 클래스는 S 트랜잭션 격리 레벨로 실행할 수 없습니다. 그러므로 이 클래스를 사용하여 구성된 액세스 인텐트 정책으로 엔터프라이즈 Bean을 포함한 애플리케이션을 실행하여 Bean이 S 격리로 로드되게 합니다.
- EJB 메소드당 액세스 인텐트 정책 설정 지원은 버전 6.0에 대해 더 이상 사용되지 않습니다. 전체 Bean에 대해서만 액세스 인텐트를 설정하는 것이 좋습니다.
- 스냅샷으로 커미트된 읽기
- 트랜잭션 스냅샷(순차적 실행을 위한)
SQL(Structured Query Language) 키워드 및 제한사항
데이터베이스 | 잠금 업데이트에 사용된 SQL 구문 | 결합 제한사항 | 제한사항으로 순서 지정 | 선택(subselect) 제한사항 | 집계 제한사항 |
---|---|---|---|---|---|
DB2 | FOR UPDATE OF | 허용 안됨 | 허용 안됨 | 허용 안됨 | 허용 안됨 |
iSeries용 DB2 UDB(V5R3 이전) | FOR UPDATE OF | 허용 안됨 | 제한사항으로 허용됨* | 제한사항으로 허용됨* | 허용 안됨 |
iSeries용 DB2 UDB(V5R4 이상) | WITH RS/RR USE AND KEEP EXCLUSIVE LOCKS | 허용 안됨 | 제한사항으로 허용됨* | 제한사항으로 허용됨* | 허용 안됨 |
z/OS®에서 DB2 V8.x | WITH RS/RR USE AND KEEP UPDATE LOCKS | 없음 | 없음 | 없음 | 없음 |
DB2 UDB 워크스테이션 V8.2 | WITH RS/RR USE AND KEEP UPDATE LOCKS | 없음 | 없음 | 없음 | 없음 |
Oracle | FOR UPDATE | 없음 | 없음 | 없음 | 없음 |
Apache Derby | FOR UPDATE OF | 허용 안됨 | 허용 안됨 | 허용 안됨 | 허용 안됨 |
Informix | FOR UPDATE | 허용 안됨 | 허용 안됨 | 허용 안됨 | 허용 안됨 |
Sybase | FOR UPDATE | 허용 안됨 | 허용 안됨 | 허용 안됨 | 허용 안됨 |
Sqlserver | UPDLOCK | 허용 안됨 | 허용 안됨 | 허용 안됨 | 허용 안됨 |