예: CLI 애플리케이션에서 SQL문을 정적으로 실행

pureQuery 클라이언트 최적화에 사용 가능한 CLI(Call Level Interface) 애플리케이션을 DB2® 데이터베이스에서 SQL문을 정적으로 실행하도록 구성할 수 있습니다. SQL문을 정적으로 실행하면 런타임에 특정 SQL문을 준비하지 않아도 되며 애플리케이션 보안과 성능이 개선될 수 있습니다.

시작하기 전에

pureQuery 클라이언트 최적화로 CLI 애플리케이션을 사용하십시오.

Java 기반 pureQuery Configure 유틸리티 및 StaticBinder 유틸리티를 실행하는 컴퓨터에서 pureQuery Runtime을 설치하고 사용해야 합니다. 다음 제품을 컴퓨터에 설치해야 합니다.
  • JRE(Java™ Runtime Environment) 버전 1.5 이상
  • IBM® Data Server Driver for JDBC and SQLJ 버전 3.57.xx
pureQuery Runtime JAR 파일, pdq.jar 및 pdqmgmt.jar과 Data Server Driver JAR 파일이 유틸리티를 실행하는 컴퓨터의 CLASSPATH에 나열되어야 합니다.

이 태스크 정보

태스크에서는 CLI 애플리케이션이 DB2 데이터베이스에 연결하며 다음 연결 URL로 데이터베이스에 연결할 수 있다고 가정합니다.

jdbc:db2://svl01:500/DB2M -user user01 -password myPass

키워드를 db2cli.ini 구성 파일에 설정하여 애플리케이션을 구성합니다. 애플리케이션에서 발행된 SQL문을 캡처하도록 CLI 애플리케이션을 구성한 후 명령문을 정적으로 실행하도록 애플리케이션을 구성합니다.

프로시저

CLI 애플리케이션에서 SQL문을 정적으로 실행하려면 다음을 수행하십시오.

  1. pureQuery 키워드를 CLI 애플리케이션 구성 파일에 설정하여 애플리케이션이 발행하는 SQL문을 캡처하십시오.

    애플리케이션에서 발행된 SQL문을 캡처하기 위해 애플리케이션이 사용하는 db2cli.ini 구성 파일에서 다음 키워드를 갱신하십시오.

    captureMode=ON
    executionMode=DYNAMIC
    pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
    db2dsdriver.cfg 파일을 사용하는 경우 매개변수 요소에 키워드를 속성으로 설정하기도 합니다.
    <parameter name="captureMode" value="ON"/>
    <parameter name="executionMode" value="DYNAMIC"/>
    <parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml"/>

    키워드 설정은 CLI 애플리케이션이 SQL문을 동적으로 실행하고 C:\testapp\Sample1Cptr.pdqxml 파일에서 실행 명령문을 캡처하도록 구성합니다.

    executionMode 키워드의 DYNAMIC 값은 기본값이며 특성 파일에는 필요하지 않습니다. 특성을 파일에 포함시키는 것은 기본값을 알려 주기 위함입니다. SQL문을 정적으로 실행하도록 값이 변경됩니다.

    pureQueryXml 키워드의 값은 pureQuery 클라이언트 최적화가 애플리케이션에서 캡처된 SQL 데이터를 저장하는 pureQueryXML 파일의 위치와 이름을 지정합니다. 이 값은 pureQuery 클라이언트 최적화가 SQL문 실행을 제어하는 데 사용하는 pureQueryXML 파일의 위치 및 이름이기도 합니다. DB2 데이터베이스에서 SQL문을 정적으로 실행하도록 pureQuery 클라이언트 최적화를 구성할 때 pureQuery Runtime은 파일의 정보를 사용하여 실행할 SQL문을 판별합니다.

  2. 애플리케이션을 실행하여 pureQueryXML 파일의 SQL문을 캡처하십시오.

    SQL문은 pureQueryXML 파일에 캡처됩니다.

  3. 캡처된 SQL문이 포함된 pureQueryXML 파일을 구성하고 캡처된 SQL문을 바인드하십시오.
    1. 필요에 따라 pureQuery Runtime 파일이 설치된 컴퓨터에 pureQueryXML 파일을 복사하십시오.
    2. pureQuery Configure 유틸리티를 실행하여 패키지 이름 및 콜렉션 ID로 pureQueryXML 파일을 구성하십시오.

      명령 프롬프트에, Configure 유틸리티를 실행하여 pureQuery StaticBinder 유틸리티에 사용되는 패키지 이름 및 콜렉션 ID와 같은 정보를 pureQueryXML 파일에 추가하십시오. 파일의 SQL문을 관리할 수 있는 기타 옵션을 지정할 수도 있습니다.

      다음 예 명령은 Configure 유틸리티를 실행하고 기본 패키지 이름 SMPL1 및 COLL01이라는 콜렉션을 지정합니다. 명령을 한 행에 입력하십시오.

      java com.ibm.pdq.tools.Configure -pureQueryXml Sample1Cptr.pdqxml 
         -rootPkgName SMPL1 -collection COLL01
    3. 구성된 pureQueryXML 파일과 함께 pureQuery StaticBinder 유틸리티를 실행하여 목표 DB2 서버에 패키지를 작성하고 패키지를 바인드하십시오.
      명령 프롬프트에서 데이터베이스 및 패키지 정보를 지정하는 옵션과 함께 StaticBinder 유틸리티를 실행하십시오. 다음 예 StaticBinder 명령은 목표 DB2 서버에 패키지를 작성하고 패키지를 바인드합니다. 명령을 한 행에 입력하십시오.
      java com.ibm.pdq.tools.StaticBinder
        -url jdbc:db2://svl01:500/DB2M -user user01 -password myPass
         -pureQueryXml Sample1Cptr.pdqxml
    4. 필요에 따라 애플리케이션이 실행되는 컴퓨터의 pureQueryXML 파일을 구성된 pureQueryXML 파일로 대체하십시오.
  4. 캡처한 명령문을 정적으로 실행하도록 CLI 애플리케이션 구성 파일을 갱신하십시오.

    db2cli.ini 구성의 pureQuery executionMode 키워드를 갱신하여 애플리케이션에서 발행된 SQL문을 정적으로 실행하십시오. 키워드 값이 DYNAMIC에서 STATIC으로 변경됩니다.

    captureMode=ON
    executionMode=STATIC
    pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
    db2dsdriver.cfg 파일에서는 키워드를 매개변수 요소에 속성으로 설정합니다.
    <parameter name="captureMode" value="ON" />
    <parameter name="executionMode" value="STATIC" />
    <parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml" />
  5. 애플리케이션을 실행하거나 다시 시작해서 구성 파일 및 pureQueryXML 파일의 갱신된 정보를 사용하십시오.

결과

애플리케이션을 실행하면 애플리케이션에서 발행한 두 개의 SQL문이 정적으로 실행됩니다. 애플리케이션을 갱신하고 SQL문을 변경하거나 추가하면 갱신된 또는 새 SQL문이 동적으로 실행되고 pureQueryXML 파일에 캡처됩니다.

팁: pureQueryXML 파일에 캡처된 SQL문만 실행하도록 애플리케이션을 제한할 수 있습니다. SQL문의 실행을 제한하는 한 가지 구성은 captureMode 키워드의 값을 OFF로 설정하고 키워드 및 capturedOnly=TRUE 값을 추가하는 것입니다.
captureMode=OFF
capturedOnly=TRUE
executionMode=STATIC
pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
db2dsdriver.cfg 파일에서는 다음 매개변수 요소를 설정합니다.
<parameter name="captureMode" value="OFF" />
<parameter name="capturedOnly" value="TRUE" />
<parameter name="executionMode" value="STATIC" />
<parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml" />

이 구성으로는 pureQueryXML 파일의 SQL문만 실행되고 SQL문은 정적으로 실행됩니다. 갱신된 또는 새 SQL문은 pureQueryXML 파일에 캡처되지 않습니다.


피드백