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문을 정적으로 실행하려면 다음을 수행하십시오.
- 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문을 판별합니다.
- 애플리케이션을 실행하여 pureQueryXML 파일의 SQL문을 캡처하십시오.
SQL문은 pureQueryXML 파일에 캡처됩니다.
- 캡처된 SQL문이 포함된 pureQueryXML 파일을 구성하고 캡처된
SQL문을 바인드하십시오.
- 필요에 따라 pureQuery Runtime 파일이 설치된 컴퓨터에 pureQueryXML
파일을 복사하십시오.
- 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
- 구성된 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
- 필요에 따라 애플리케이션이 실행되는 컴퓨터의 pureQueryXML 파일을
구성된 pureQueryXML 파일로 대체하십시오.
- 캡처한 명령문을 정적으로 실행하도록 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" />
- 애플리케이션을 실행하거나 다시 시작해서 구성 파일 및 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 파일에 캡처되지 않습니다.