워크벤치를 사용하여 pureQuery가 아닌 API 애플리케이션에서 SQL문의 정적 실행 구성

워크벤치는 pureQuery가 아닌 API 애플리케이션에서 SQL문을 캡처 및 바인드하고, 이 애플리케이션을 실행할 때 정적으로 명령문을 실행할 수 있는 기능을 제공합니다.

시작하기 전에

시스템이 하드웨어 및 소프트웨어 요구사항을 충족하는지 확인하십시오. Optim™ pureQuery Runtime에 대한 시스템 요구사항을 참조하십시오.

애플리케이션은 워크벤치에서 Java™ 프로젝트에 위치되어야 합니다.

바인드 조작을 수행하기 전에 다음 전제조건이 충족되는지 확인하십시오.
  • pureQuery StaticBinder 유틸리티를 호출하는 사용자의 특권 세트는 다음 권한 중 하나를 포함해야 합니다.
    • SYSADM 권한
    • DBADM 권한
    • 패키지가 존재하지 않는 경우 BINDADD 특권 및 다음 특권 중 하나를 포함해야 합니다.
      • CREATEIN 특권
      • z/OS®용 DB2®: 해당 콜렉션 또는 모든 콜렉션의 PACKADM 권한
      • Linux®, UNIX® 및 Windows®용 DB2 데이터베이스: 패키지의 스키마 이름이 존재하지 않는 경우 데이터베이스의 IMPLICIT_SCHEMA 권한
    • z/OS용 DB2: 패키지가 존재하는 경우 패키지의 BIND 특권
    • Linux, UNIX 및 Windows용 DB2 데이터베이스: 패키지가 존재하는 경우
      • 스키마의 ALTERIN 특권
      • 패키지의 BIND 특권
  • Linux, UNIX 및 Windows용 DB2: 또한 사용자는 애플리케이션의 모든 정적 SQL문을 컴파일하는 데 필요한 모든 특권이 필요합니다. 그룹에 권한 부여된 특권은 정적 명령문의 권한 부여 점검에 사용되지 않습니다. 사용자에게 SYSADM 권한은 있지만 바인드를 완료할 수 있는 명시적 특권은 없는 경우, DB2 데이터베이스 관리 프로그램이 명시적 DBADM 권한을 자동으로 부여합니다.
pureQuery가 아닌 API 애플리케이션에서 정적 실행을 위해 pureQuery Runtime을 사용할 때 다음 활동에 대해 데이터베이스에 작성된 SQL 관리 저장소를 사용할 수 있습니다.
  • pureQuery 클라이언트 최적화에 의해 캡처된 SQL문 및 관련 정보를 저장합니다.
  • pureQuery 런타임 구성 정보 및 pureQueryXML 파일 정보를 저장하고 관리합니다.
  • pureQuery 클라이언트 최적화에 사용 가능한 애플리케이션이 사용할 pureQuery 정보를 검색합니다.

프로시저

pureQuery가 아닌 API 애플리케이션에서 SQL문의 정적 실행을 구성하는 경우 기본 단계는 다음과 같습니다.

  1. pureQuery가 애플리케이션에서 SQL문을 캡처 및 바인드할 수 있도록 설정하십시오.
  2. 옵션: pureQuery가 아닌 API 애플리케이션에 대해 캡처하려는 모든 SQL문을 실행하는 JUnit 테스트를 작성하십시오. 단위 테스트를 작성하지 않는 경우, 결국 정적으로 실행하려고 하는 모든 SQL문을 실행하도록 애플리케이션을 실행해야 합니다.

    워크벤치에서의 JUnit에 대한 정보는 JUnit 테스트 작성 및 실행을 참조하십시오.

  3. 정적으로 실행하려는 SQL문을 캡처하십시오.
    1. pureQuery가 SQL문을 캡처하는 방법을 판별하는 특성의 값을 설정하십시오.
    2. 애플리케이션 또는 JUnit 테스트를 실행하십시오.
    완료하면, 워크벤치는 Java 프로젝트에서 사용자가 지정한 pureQueryXML 파일을 작성합니다. 애플리케이션에서 SQL문 중 일부를 캡처하지 못해서 나머지 SQL문을 캡처하려는 경우 이 단계를 반복할 수 있습니다.
  4. SQL문에서 작성하려는 DB2 패키지를 구성하십시오.
    1. 작성하려는 DB2 패키지의 콜렉션, 루트 이름 및 버전을 지정하여 Default.genProps 파일을 편집하십시오.
      파일을 저장하면, 사용자가 지정한 값이 제공된 DB2 패키지 형태를 볼 수 있는 SQL 아웃라인 보기가 새로 고쳐집니다. 이 보기에 대해 학습하려면 SQL 아웃라인 보기를 참조하십시오.
    2. 옵션: pureQueryXML 파일을 편집하거나 병합하십시오.
      이 파일은 SQL문 세트를 포함합니다. 명령문에서 작성하는 DB2 패키지는 이 세트를 기초로 합니다. 명령문 세트의 이름을 변경하고, 명령문을 다른 세트로 이동하며, 대체 명령문을 추가하고 명령문을 삭제할 수 있습니다. 또한 pureQueryXML 파일을 함께 병합할 수도 있습니다.
  5. DB2 패키지를 작성하십시오.
    1. StaticBinder 유틸리티가 캡처된 SQL문을 DB2 패키지에 바인드하는 방법을 판별하는 옵션을 지정하여 Default.bindProps 파일을 편집하십시오.
    2. 다음 단계 중 하나를 수행하여 캡처된 SQL문을 바인드하십시오.
      • pureQueryFolder 폴더에서 개별 pureQueryXML 파일을 마우스 오른쪽 단추로 누르고 바인드를 선택하십시오.
      • 프로젝트 폴더를 마우스 오른쪽 단추로 누르고 pureQuery > 애플리케이션 바인드를 선택하십시오. 이 방법을 사용하여 모든 pureQueryXML 파일의 SQL을 한 번에 바인드할 수 있습니다.
      연결 선택 창이 열리고 사용하려는 DB2 데이터베이스를 선택할 수 있습니다. Java 프로젝트와 연관되지 않은 데이터베이스를 선택할 수 있습니다.
      주의: 오프라인으로 작업 중인 경우 바인드 조작을 수행할 수 없습니다. 바인드하려는 DB2 데이터베이스에 연결되어 있어야 합니다.

      이 단계 후 pureQueryXML 파일에서 추가 SQL문을 캡처하면 이들 파일의 바인드 조작을 재실행해야 합니다.

    3. DB2 패키지와 패키지에 포함된 SQL문을 보십시오.
      원하는 DB2 패키지를 작성했는지 확인하려면 프로젝트 폴더를 선택하고 SQL 아웃라인 보기의 SQL 페이지를 봅니다.
      패키지의 특성을 변경하려면 다음을 수행하십시오.
      1. Default.genProps 파일을 편집하십시오. 기존 패키지의 새 버전을 작성 중인 경우 -pkgVersion 옵션을 사용하십시오.
      2. Default.bindProps 파일을 편집하십시오.
      3. 바인드 조작을 반복하십시오. -pkgVersion 옵션을 사용하지 않은 경우 기존 DB2 패키지 위에 겹쳐씁니다.

      애플리케이션에서 계속 Java 소스 또는 SQL문을 편집할 수 있습니다. 편집한 후에는 pureQueryXML 파일을 삭제하고 SQL문을 다시 캡처하십시오. 그런 다음 작성하려는 DB2 패키지를 구성하고 다시 바인드 조작을 수행하십시오.

      주의: Connection 오브젝트나 Properties 오브젝트의 URL에서 클라이언트 최적화를 위한 특성만 수정하는 경우 pureQueryXML 파일을 삭제하지 않아도 됩니다. 그러나 이 특성을 수정할 때 애플리케이션의 행 수가 변경되지 않도록 주의해야 합니다.
  6. 애플리케이션을 실행하십시오.

다음에 수행할 작업

SQL 아웃라인 보기를 사용하여 SQL문에 대해 발생할 수 있는 문제점을 해결할 수 있습니다. SQL문이나 애플리케이션의 다른 측면을 수정하는 경우 SQL을 다시 캡처하고 DB2 패키지를 다시 작성해야 합니다.

JAR 파일에서 애플리케이션을 전개하려는 경우: JAR 파일에서 애플리케이션을 전개하기 전에 바인드하려는 SQL문을 포함하는 전체 pureQueryXML 파일의 항목이 Default.bindProps 파일에 들어 있는지 확인해야 합니다. 애플리케이션을 전개하는 데이터베이스의 명령행에서 실행해야 하는 pureQuery StaticBinder 유틸리티는 Default.bindProps 파일에 나열된 pureQueryXML 파일에 대해서만 작용합니다.

파일을 추가하려면 다음을 수행하십시오.
  1. 프로젝트의 pureQueryFolder 폴더에서 Default.bindProps 파일을 마우스 오른쪽 단추로 누르고 pureQuery > 항목 추가 또는 제거를 선택하십시오.
  2. 항목 추가 또는 제거 창에서 모든 필수 pureQueryXML 파일을 추가하십시오.

애플리케이션 전개 후 DB2 패키지의 루트 패키지 이름, 콜렉션 ID 및 버전을 개정해야 한다고 생각하는 경우, defaultOptions 행이 적용되는 모든 pureQueryXML 파일 항목이 Default.genProps 파일에 포함되어 있는지도 확인해야 합니다. 또한 항목을 마우스 오른쪽 단추로 누르고 항목 추가 또는 제거 창을 사용하여 이 파일에 항목을 추가할 수도 있습니다.


피드백