IBM Optim pureQuery Runtime
IBM® Optim™ pureQuery Runtime은 데이터베이스 액세스를 위한 대체 방법을 포함한 JPA(Java™ Persistence API)를 제공합니다. PureQuery는 정적 SQL(Structured Query Language)을 지원합니다. PureQuery는 OpenJPA 및 WSJPA 지속성 제공자에 의해서만 지원됩니다.
이 태스크 정보
Java EE 및 Java SE 환경의 JPA는 pureQuery 런타임 환경에 대한 선택적 지원을 제공합니다. PureQuery는 데이터를 액세스하는 애플리케이션 관리를 돕는 고성능 Java 데이터 액세스 플랫폼입니다. PureQuery는 DB2® 및 Informix® 데이터베이스에 액세스하기 위해 JDBC(Java Database Connectivity) 대신 사용할 수 있는 대체 API 세트를 제공합니다.
애플리케이션 서버에서 이 기능을 사용하려면 Data Studio pureQuery 런타임 버전 1.2 이상을 설치해야 합니다. 관리 콘솔에서 또는 wsadmin 도구를 사용하여 DB2 바인드 명령을 수행하려면 pureQuery v1.2 이상이 있어야 합니다. 자세한 정보는 pureQuery Runtime 설치에 대한 IBM Optim pureQuery Runtime Information Center 주제를 참조하십시오.
동적으로 pureQuery를 사용할 수 있습니다. pdqxml 파일 위치는 데이터 소스 연결 URL에서 pdqProperties 특성에 의해 지정됩니다. 자세한 정보는, 동적 모드에서 pureQuery 사용 주제를 참조하십시오.
PureQuery는 DB2 패키지를 사용합니다. 이 패키지는 하나 이상의 SQL문에 대한 정보로 구성되고 DB2 카탈로그에 저장됩니다. 패키지를 작성하려면, 사용자는 JPA 애플리케이션에서 먼저 wsdbgen 명령을 실행해야 합니다. wsdbgen 명령은 persistence_unit_name.pdqxml 파일을 작성합니다. 이 파일은 JPA 엔티티의 NamedQueries 및 NamedNativeQueries를 작성, 업데이트, 삭제, 검색하기 위한 사전 생성된 SQL문을 포함합니다. persistence_unit_name.pdqxml 파일은 데이터베이스에 대해 바인드되어야 합니다. 연관된 DB2 패키지가 생성되고 런타임 시 SQL문이 정적으로 시작됩니다. 이 persistence_unit_name.pdqxml 파일은 애플리케이션 JAR(Java archive) 파일에 포함되어야 합니다.
애플리케이션 서버는 ejbdeploy SQLj 옵션과 함께 EJB(Enterprise JavaBeans) 2.x 이상 엔티티 Bean에 대한 정적 SQL 지원을 제공합니다. JPA를 사용하여, 이 기능은 pureQuery를 통해 제공합됩니다.
JDBC 및 SQLJ 대신 pureQuery를 사용하면 몇 가지 장점이 있습니다. 정적 SQL은 데이터 액세스에 대한 높은 보안과 제어를 제공합니다. 이는 애플리케이션이 알려진 SQL을 실행하기 위한 권한만 부여되기 때문입니다. 정적 SQL은 DB2 서버에 대한 더 나은 자원 활용을 제공하며 이는 SQL문의 런타임 구문 분석과 최적화를 하지 않기 때문입니다.
- db2jcc_license_cisuz.jar
- db2jcc_license_cu.jar
- pdq.jar
- pdqmgmt.jar
- wsjpa.ConnectionFactoryProperties에 대한 특성 플러그인 문자열 또는 FetchPlan API를 통해 지정된 QueryTimeout 특성에 대한 지원은 없습니다. QueryTimeout 값은 지정된 경우 무시됩니다.
- FetchPlan API를 통해 지정된 QueryTimeout 특성에 대한 지원은 없습니다. QueryTimeout 값은 지정된 경우 무시됩니다.
- OpenJPA 대형 결과 처리는 스크롤 가능한 커서를 위해 JDBC API를 사용합니다.
- JPA는 pureQuery property, pdq.executionMode를 값 STATIC으로 설정합니다.
- JDBC 드라이버 JAR 파일에 추가로, JDBC 제공자 구성은 pureQuery 런타임 환경에 대한 JAR 파일을 포함해야 합니다.
- OpenJPA는 런타임 시 FetchPlan을 프로그래밍 방식으로 액세스하고 변경하기 위한 애플리케이션 프로그램 지원을 제공합니다. 페치 계획을 변경하면 애플리케이션 바인드 시 wsdbgen 명령에 의해 생성되지 않은 SQL이 생성될 수 있습니다. 이러한 상황이 발생하면 SQL이 데이터베이스 패키지에서 정적 SQL을 사용하지 않고 동적으로 실행됩니다.
- 사용자가 애플리케이션 조회, 엔티티 맵핑 또는 지속성 특성을 변경하는 경우, wsdbgen 명령을 실행하고 다시 바인드하십시오. 이 프로세스는 업데이트된 데이터베이스 패키지를 생성하고 바인드합니다.
- JPA 조회(EJB SQL 조회 및 고유 SQL 조회 포함)의 입력 매개변수값은 NULL 값일 수 없으며, 업데이트 명령문 SET 표현식 값의 경우에는 예외입니다. SELECT, UPDATE 또는 DELETE의 WHERE절에서 NULL 값을 검색하려면 대신 is null 술어를 입력하십시오.