시스템이 하드웨어 및 소프트웨어 요구사항을 충족하는지 확인하십시오. InfoSphere® Optim™ pureQuery Runtime에 대한 시스템 요구사항을 참조하십시오.
코드에 대해 이러한 구성요소나 변경사항을 필요로 하는 대신에, 클라이언트 최적화는 JDBC 드라이버가 애플리케이션과 상호 작용하는 방법을 변경합니다.
pureQuery가 아닌 API 애플리케이션에 있는 SQL문을 정적으로 실행하려면 다음을 수행하십시오.
이 예는 다음과 같은 단순한 pureQuery가 아닌 API 애플리케이션을 사용합니다.
import java.sql.*; import com.ibm.db2.jcc.*; public class Sample1 { public static void main (String[] args) throws SQLException, ClassNotFoundException { Connection jdbcCon=null; try { Class.forName("com.ibm.db2.jcc.DB2Driver"); jdbcCon=DriverManager.getConnection( "jdbc:db2://svl01:500/DB2M", "user01", "myPass"); } catch (SQLException e) { System.out.println(e); } try { PreparedStatement pStmt = jdbcCon.prepareStatement( "INSERT INTO ADMF001.VIEW1(C1, C3, C2) VALUES(?,?,?)"); pStmt.setString(1, "1"); pStmt.setInt(2, 3); pStmt.setDouble(3, 2.0e3); pStmt.executeUpdate(); pStmt.close(); Statement selStmt = jdbcCon.createStatement( ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); ResultSet rs = selStmt.executeQuery( "SELECT * FROM ADMF001.VIEW1 WHERE C2 > 200"); System.out.println("moving to the first row"); if (rs.next()) { System.out.println("deleting it"); Statement stmt = jdbcCon.createStatement(); stmt.executeUpdate( "DELETE FROM ADMF001.VIEW1 WHERE CURRENT OF " + rs.getCursorName()); stmt.close(); } selStmt.close(); } catch (SQLException e) { System.out.println( "Sample1: " + e ); } jdbcCon.close(); } //end main } // end class Sample1
pdq.captureMode=ON pdq.pureQueryXml=Sample1Cptr.pdqxml애플리케이션이 완료된 후 pureQueryXML 파일은 현재 디렉토리에 존재하고 Sample1Cptr.pdqxml이라는 이름을 갖습니다.
단일 pureQueryXML 파일의 모든 명령문이 StaticBinder에 의해 함께 패키지됩니다. 따라서 애플리케이션이 둘 이상의 데이터베이스에 연결되고 이에 대해 SQL을 실행하는 경우, 각 연결 URL 또는 DataSource 오브젝트에 대해 pureQueryXML 파일을 작성해야 합니다.
더 큰 애플리케이션에 대해서는 SQL문을 증분식으로 캡처하도록 선택할 수 있습니다. 초기 실행에서 많은 SQL문을 캡처하고 이후 실행에서 나머지 SQL문을 동일한 파일에 캡처할 수 있습니다. 그러나 여러 개의 pureQueryXML 파일을 설정하는 경우 다른 Connection 오브젝트의 URL을 수정하지 않고 애플리케이션의 소스를 수정하면 pureQueryXML 파일을 삭제하고 캡처 프로세스를 다시 시작해야 합니다.
pureQuery가 아닌 API 애플리케이션을 테스트하고 프로덕션 환경에 애플리케이션을 전개할 때 사용할 계획인 데이터베이스와 유사한 데이터베이스에 대해 SQL문을 실행하는 동안 해당 명령문을 캡처해야 합니다.
java com.ibm.pdq.tools.Configure -pureQueryXml Sample1Cptr.pdqxml –rootPkgName SMPL1 -collection COLL01
pureQueryXML 파일에서 Configure 유틸리티를 실행한 다음 해당 파일에 SQL문을 추가로 캡처하는 경우, 파일에서 Configure 유틸리티를 다시 실행해야 합니다.
java com.ibm.pdq.tools.StaticBinder –url jdbc:db2://svl01:500/DB2M -username user01 -password myPass -pureQueryXml Sample1Cptr.pdqxml
pdq.executionMode=STATIC pdq.pureQueryXml=Sample1Cptr.pdqxml
기본으로 애플리케이션은 사용자가 캡처하지 않은 모든 SQL문을 동적으로 실행할 수 있습니다.