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 파일에 캡처되지 않습니다.