이상적인 환경에서는, pureQuery 클라이언트 최적화에 사용 가능한 애플리케이션을 실행하고, SQL 데이터를 캡처하며, 프로덕션 환경과 동일한 환경에서 실행하는 SQL의 정적 실행을 테스트합니다. 하지만 테스트 및 프로덕션 환경이 동일한 가능성은 희박합니다. 예를 들어, 테스트 시스템은 Linux, UNIX 및 Windows용 DB2®를 사용할 수 있는 반면 프로덕션 환경은 z/OS®용 DB2를 사용합니다.
pureQuery 클라이언트 최적화에 사용 가능한 애플리케이션을 마이그레이션할 때에는 pureQueryXML 파일에 있는 패키지 및 콜렉션 이름과 같은 DB2 패키지의 특성을 변경해야 할 수 있습니다. pureQueryXML 파일의 Configure 유틸리티를 프로덕션별 옵션으로 실행한 후 StaticBinder 유틸리티를 사용하여 프로덕션 데이터베이스에 패키지를 작성하고 패키지를 데이터베이스로 바인드할 수 있습니다.
pureQuery Runtime 특성 및 pureQueryXML 데이터를 프로덕션 환경에서 사용하도록 마이그레이션할 수도 있습니다. finalRepositoryProperties 특성, captureMode 특성 및 allowDynamicSQL 특성을 수정해야 할 수 있습니다.
저장소를 사용하면 프로덕션 환경에서 저장소도 작성하고, 애플리케이션의 런타임 그룹 버전을 작성하며, pureQuery Runtime 특성 정보와 pureQueryXML 파일을 저장소에 업로드합니다.
시나리오의 이전 태스크에서는, pureQuery 클라이언트 최적화로 애플리케이션을 테스트 시스템에 구성했습니다. 테스트가 완료되면 이제 pureQueryXML 파일의 SQL문을 프로덕션 데이터베이스로 바인드할 수 있습니다. 다음 예에서는 프로덕션 콜렉션이 PRODCOL 및 QUALIFIER PROD라고 가정합니다. 따라서 패키지가 인식되도록 데이터 소스를 올바른 packagePath 설정으로 업데이트합니다. 또한 이 주제의 예에서는 프로덕션 데이터베이스가 패키지 이름 PRODPKG 패키지 이름 지정 규칙을 사용한다고 가정합니다.
java com.ibm.pdq.tools.ManageRepository -extract runtimeGroup -repositoryDriverClass com.ibm.db2.jcc.DB2Driver -repositoryURL "jdbc:db2://testserver.test.com:32706/sample" -repositoryUsername "myuser" -repositoryPassword "mypwd" -runtimeGroupId testApp -runtimeGroupVersion V2 -outputDirectory C:\TEMP\out –pureQueryXml prodApp.pdqxml
파일을 검색한 후에는 pureQueryXML 파일에서 pureQuery Configure 및 StaticBinder 유틸리티를 해당 옵션과 함께 실행합니다.
java com.ibm.pdq.tools.Configure -pureQueryXml prodApp.pdqxml –validateXml true –collection PRODCOL -rootPkgName PRODAPPL -replaceSchemas "(TEST>PROD)" -cleanConfigure true
java com.ibm.pdq.tools.StaticBinder –url jdbc:db2://prodserver.prod.com:446/STLEC1” -username "myuser" -password "mypwd" -isolationLevel CS -bindOptions "QUALIFIER PROD" -pureQueryXml prodApp.pdqxml -showDetails true
-showDetails true 옵션을 지정하면 StaticBinder 유틸리티가 생성하는 DB2 패키지에 관한 요약 정보를 표시합니다.
StaticBinder 옵션 -isolationLevel CS는 StaticBinder가 분리 수준 커서 안정성(CS)의 단일 패키지를 작성함을 지정합니다. CS 분리 수준은 Linux, UNIX 및 Windows용 DB2 데이터베이스의 기본 레벨입니다.
The StaticBinder utility is beginning to bind the pureQueryXml file capture.xml. Starting to process options : -username "*****" -password "*****" -url "jdbc:db2://prodserver.prod.com" -pureQueryXml prodApp.pdqxml -isolationLevel "CS" -bindOptions "QUALIFIER PROD" The StaticBinder utility successfully bound the package 'PRODAPPL2' for the isolation level 'CS'.
애플리케이션을 프로덕션 환경으로 마이그레이션할 때에는 일관성 토큰 및 패키지 버전과 같은 정적 SQL 식별 정보를 변경해야 할 수 있습니다.
예제
런타임에 WebSphere Application Server 데이터 소스에서 WebSphere JDBC 프로바이더 사용자 정의 특성 currentPackageSet가 PRODCOL1B로 설정되지 않으면 pureQueryXML 파일의 콜렉션 PRODCOL이 사용됩니다. STLEC1B에서 패키지를 찾을 수 없으며 애플리케이션에 SQLCODE 805가 리턴됩니다.
동적 SQL문이 있으면 데이터 소스 특성 currentPackagePath를 지정해야 합니다. JDBC 동적 패키지가 콜렉션 NULLID로 바인드되는 경우에는 WebSphere Application Server 데이터 소스의 currentPackagePath 특성 값을 PRODCOL1B,NULLID로 설정해야 합니다.
예제
PRODCOL 콜렉션의 테스트를 위한 위치(예를 들어, STLEC)로 pureQueryXML 파일의 SQL문이 바인드되는 경우가 있습니다. BIND COPY 명령을 사용하여 PRODCOL1B 콜렉션의 프로덕션 위치 STLEC1B로 패키지를 COPY합니다.