클라이언트 최적화를 위해 아카이브 파일에서 바인드하기 위한 구문

이 명령을 사용하여 애플리케이션을 포함하는 아카이브 파일에 대해 StaticBinder 유틸리티를 실행할 수 있습니다. 아카이브에는 확장자가 .bindProps이며 StaticBinder 유틸리티에 제공할 pureQueryXML 파일을 나열하는 StaticBinder 옵션 파일이 있어야 합니다.
구문 도표 읽기시각적 구문 도표 생략
                                        (1)   
>>-java--com.ibm.pdq.tools.StaticBinder------------------------->

    (2)                                                                 
>-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database-->
                                             '-:--port-'                

>-- -username--user-ID-- -password--password-------------------->

>-- -archive-- -filename--+-.ear-+------------------------------>
                          +-.jar-+   
                          +-.war-+   
                          '-.zip-'   

>--+------------------------------------------------------------------------+-->
   |                  (3)                                                   |   
   +-| DBRM options |-------------------------------------------------------+   
   +- -bindOptions-- -"--bind-options--"--+-------------------------------+-+   
   |                                      '- -verifyPackages--+-DETAIL--+-' |   
   |                                                          '-SUMMARY-'   |   
   '- -verifyPackages--+-DETAIL--+------------------------------------------'   
                       '-SUMMARY-'                                              

>--+-----------------------------+--+----------------+---------->
   |                   .-FALSE-. |  |            (4) |   
   '- -differenceOnly--+-TRUE--+-'  '-| -grant |-----'   

>--+--------------------------+--+-----------------------+------>
   '- -isolationLevel--+-CS-+-'  |                   (5) |   
                       +-RR-+    '-| Trace options |-----'   
                       +-RS-+                                
                       '-UR-'                                

>--+--------------------------+--------------------------------><
   |                .-FALSE-. |   
   '- -showDetails--+-TRUE--+-'   

주:
  1. 임의의 순서로 옵션을 지정할 수 있습니다.
  2. DBRM 파일만을 생성하려는 경우 -url, -username- 및 -password 옵션을 사용하지 않아도 됩니다.
  3. 구문의 경우 해당 옵션의 설명을 참조하십시오.
  4. 구문의 경우 해당 옵션의 설명을 참조하십시오.
  5. 구문의 경우 해당 옵션의 설명을 참조하십시오.

옵션에 대한 설명

-archive archive-file
아카이브 파일에서 애플리케이션을 DB2® 서버에 배치하고 해당 서버에서 StaticBinder를 실행하여 SQL문을 바인드하는 경우 이 옵션을 사용하십시오. archive-file의 경우, 애플리케이션이 있는 아카이브를 지정하십시오. 지원되는 아카이브 유형은 EAR, JAR, WAR 및 ZIP입니다.

아카이브에 확장자가 .bindProps이고 StaticBinder 유틸리티에 제공하는 pureQueryXML 파일을 나열하는 옵션 파일이 있을 수 있습니다. 명령의 부분으로 .bindProps 파일을 지정하지 않으면 StaticBinder 유틸리티가 아카이브에서 .bindProps 파일을 검색합니다. StaticBinder 유틸리티는 아카이브에서 첫 번째로 찾은 .bindProps 파일을 사용합니다. 상위 레벨 EAR, JAR 또는 WAR에서 검색을 시작합니다.

StaticBinder 명령을 사용하여 .bindProps 파일의 이름을 지정한 경우에는 지정된 파일이 사용됩니다.

DAO 구현에 -archive 옵션을 바인드할 때 StaticBinder 유틸리티는 구현 클래스를 로드하여 정보를 구합니다. 클래스를 로드하려면 EAR, JAR 또는 WAR 파일에서 종속 클래스를 로드해야 할 수도 있습니다.

-archive 옵션을 사용하는 바인드 오퍼레이션 중에 StaticBinder 유틸리티가 찾을 수 없는 클래스에 대한 오류를 리턴할 수 있습니다. 예를 들어, 애플리케이션 서버 컨텍스트가 필요한 일부 엔터프라이즈 애플리케이션이 이러한 오류를 리턴합니다.

StaticBinder 유틸리티 로드 종속성을 최소화하려면 Apache BCEL 라이브러리를 클래스 경로에 둡니다. StaticBinder 유틸리티에서 BCEL 라이브러리를 사용할 수 있으면 유틸리티는 바이트코드 수정을 사용하여 구현 종속성을 제외하고 로드된 클래스의 수를 최소화합니다. 대부분의 경우, 라이브러리를 클래스 경로에 추가하면 찾을 수 없는 클래스로 인한 오류가 해결됩니다.

Apache BCEL JAR 파일은 pureQuery Runtime과 함께 제공되지 않습니다. BCEL 라이브러리는 Apache 프로젝트 웹 사이트에서 사용 가능합니다.

-bindOptions "string-of-bind-options"
해당 옵션의 기능은 같은 이름으로 지정된 DB2 프리컴파일 및 바인드 옵션의 기능과 같습니다. 문자열의 형식은 다음 중 하나입니다.
  • "option_1 value_1 option_2 value_2"
  • "option_1(value_1) option_2(value_2)"

각 옵션 값은 공백을 포함할 수 없습니다.

해당 옵션의 목록 및 설명은 BIND 명령을 참조하십시오.

CONCURRENTACCESSRESOLUTION 바인드 옵션을 Linux, UNIX 및 Windows용 DB2 버전 9.7에서 사용하는 경우, 해당 옵션이 CS 및 RR 분리 레벨에서 바인드된 패키지에 있는 모든 명령문에 적용됩니다. 이들 두 분리 레벨에만 적용되는 이 옵션으로 애플리케이션은 다른 애플리케이션에서 잠근 행에서 마지막으로 커미트된 값을 찾습니다.
DBRM options
패키지를 작성하지 않고 DBRM 파일을 생성하려면 이 옵션을 사용하십시오. 이 옵션은 z/OS®용 DB2를 사용하는 경우에만 적용됩니다.

StaticBinder 유틸리티가 DBRM 파일을 생성한 후 해당 파일을 데이터 세트에 복사해야 합니다. 기본 DBRM 데이터 세트 이름은 prefix.DBRMLIB.DATA이며 여기서 prefix는 사용자에 대해 TSO 프로파일에 지정된 상위 레벨 규정자입니다. prefix는 일반적으로 TSO에서의 사용자 ID입니다.

DBRM 데이터 세트가 존재하지 않는 경우 이를 작성해야 합니다. DBRM 데이터 세트에는 모든 SQL문을 보관하기 위한 스페이스 및 각 호스트 변수 이름과 일부 헤더 정보를 위한 추가 스페이스가 필요합니다. 헤더 정보에는 대략 각 DBRM에 대해 두 개의 레코드, 각 SQL 레코드용으로 20바이트 및 각 호스트 변수용으로 6바이트가 필요합니다. DBRM의 정확한 형식은 prefix.SDSNMACS 라이브러리에서 DBRM 맵핑 매크로인 DSNXDBRM을 참조하십시오.

다음 구문 다이어그램은 DBRM 파일 생성 옵션을 설명합니다.

구문 도표 읽기시각적 구문 도표 생략
                   .-FALSE-.                           
>>- -generateDBRM--+-TRUE--+-- -outputDBRMPath--path-----------><

-generateDBRM TRUE|FALSE
패키지를 작성하는 대신에 DBRM 파일을 생성하는지 여부를 지정합니다. generateDBRMTRUE인 경우 기본적으로 StaticBinder 유틸리티가 4개의 DBRM 파일(분리 레벨 CS, RR, RS, UR 각각에 대해 하나씩)을 생성합니다. 그러나 -isolationLevel 옵션을 지정하는 경우 하나의 DBRM 파일만 생성할 수 있습니다.

생성된 DBRM 파일의 루트 이름은 Configure 유틸리티를 실행할 때 지정한 루트 패키지 이름입니다.

기본값은 FALSE입니다.

-outputDBRMPath path
생성된 DBRM 파일을 저장하기 위한 디렉토리를 지정합니다. 기본값은 StaticBinder 유틸리티를 실행한 디렉토리입니다.
-differenceOnlyTRUE|FALSE
pureQueryXML 파일 내에서 StaticBinder 유틸리티를 실행하는 해당 명령문 세트에 대한 콜렉션 이름, 패키지 이름 및 일관성 토큰 값과 일치하는 콜렉션 이름, 패키지 이름 및 일관성 토큰을 가지고 있는 DB2 패키지를 바꾸지 않도록 지정합니다.

예를 들어, capture.pdqxml이라고 하는 pureQueryXML 파일에 대해 StaticBinder 유틸리티를 실행했다고 가정하겠습니다. 유틸리티는 패키지 MYPKGA, MYPKGB 및 MYPKGC를 작성합니다. 그러면 사용자는 워크벤치에서 capture.pdqxml의 명령문 세트 MYPKGA를 편집하고 -cleanConfigure 옵션을 기본값 FALSE로 하여 이 파일에 대해 Configure 유틸리티를 실행합니다. Configure 유틸리티는 새 일관성 토큰을 명령문 세트에 지정합니다. 이 세트가 변경되었기 때문입니다. MYPKGA의 새 버전을 바인드하기 위해 다시 capture.pdqxml에서 StaticBinder 유틸리티를 실행하는 경우 -differenceOnly TRUE를 지정합니다. 유틸리티는 MYPKGA만 리바인드하고 다른 두 패키지는 리바인드하지 않습니다.

기본값은 FALSE입니다.
-grant "grantees(firstID,secondID,...)"
StaticBinder 유틸리티가 작성하는 패키지에 EXECUTE 특권을 부여할 사용자에게 쉼표로 구분되는 권한 받은 사용자 목록(괄호로 표시된)을 지정합니다. 이 옵션을 지정하지 않으면 StaticBinder 유틸리티는 이 특권을 권한 부여하지 않습니다.
구문 도표 읽기시각적 구문 도표 생략
                             .-,--------------------.          
                             V                      |          
>>- -grant-- "--grantees--(----+-authorization-ID-+-+--) - "---><
                               '-PUBLIC-----------'            

grantees
EXECUTE 특권을 권한 부여할 쉼표로 구분된 권한 부여 ID 목록입니다. 나열한 권한 부여 ID는 사용 중인 DB2 데이터베이스에 대해 유효해야 합니다.

Linux, UNIX 및 Windows용 DB2 데이터베이스: USER, GROUP 및 ROLE 키워드를 사용할 수 있습니다. 이들 키워드에 관한 정보는 GRANT(패키지 특권) 명령문을 참조하십시오.

z/OS용 DB2: ROLE 키워드를 사용할 수 있습니다. 이 키워드에 관한 정보는 GRANT(패키지 특권)를 참조하십시오.

제한사항: -generateDBRM 옵션 값이 TRUE이면 -grant 옵션을 사용할 수 없습니다.

-isolationLevel CS | RR | RS | UR
4개의 분리 레벨 각각에 대해 DB2 패키지나 DBRM 파일을 하나씩 생성하지 않고 특정 분리 레벨에 대한 단일 DB2 패키지 또는 DBRM 파일을 생성하도록 지정합니다.

분리 레벨은 패키지에 있는 모든 SQL문에 적용됩니다. 분리 레벨을 JDBC 및 SQLJ용 IBM® 데이터 서버 드라이버의 Connection.setTransactionIsolation() 메소드를 통해 설정하면, pureQuery는 정적으로 실행된 명령문의 해당 분리 레벨을 무시합니다.

UR
커미트되지 않은 데이터도 읽기(UR)를 분리 레벨로 지정합니다.
Configure 유틸리티를 실행 시 -forceSingleBindIsolation 옵션을 사용하지 않았다면 StaticBinder 유틸리티가 작성된 패키지 또는 DBRM 파일의 이름에 1을 추가합니다.
CS
커서 안정성(CS)을 분리 레벨로 지정합니다.
Configure 유틸리티를 실행 시 -forceSingleBindIsolation 옵션을 사용하지 않았다면 StaticBinder 유틸리티가 작성된 패키지 또는 DBRM 파일의 이름에 2를 추가합니다.
RS
읽기 안정성(RS)을 분리 레벨로 지정합니다. 읽기 안정성(RS) 레벨에서는 애플리케이션이 읽고 변경하는 행에 대한 다른 애플리케이션 프로세스와 별도로 패키지의 SQL문이 실행됩니다.
Configure 유틸리티를 실행 시 -forceSingleBindIsolation 옵션을 사용하지 않았다면 StaticBinder 유틸리티가 작성된 패키지 또는 DBRM 파일의 이름에 3을 추가합니다.
RR
반복 가능한 읽기(RR)를 분리 레벨로 지정합니다.
Configure 유틸리티를 실행 시 -forceSingleBindIsolation 옵션을 사용하지 않았다면 StaticBinder 유틸리티가 작성된 패키지 또는 DBRM 파일의 이름에 4를 추가합니다.
-password password
데이터 소스에 연결하는 데 사용하는 비밀번호입니다.
-showDetails TRUE|FALSE
StaticBinder 유틸리티가 생성하는 DB2 패키지와, 이 유틸리티가 처리하는 pureQueryXML 파일에 있는 SQL문에 대한 자세한 정보를 유틸리티에서 표시할 것인지 여부를 지정합니다.
기본값은 false입니다.
Trace options
메시지를 로그할 파일 및 로그할 정보 레벨을 지정할 수 있습니다.
구문 도표 읽기시각적 구문 도표 생략
>>-+------------------------+--+---------------------------+---><
   '- -traceFile--file-name-'  |               .-OFF-----. |   
                               '- -traceLevel--+-ALL-----+-'   
                                               +-SEVERE--+     
                                               +-WARNING-+     
                                               +-INFO----+     
                                               +-CONFIG--+     
                                               +-FINE----+     
                                               +-FINER---+     
                                               '-FINEST--'     

-traceFile file-name
조작에 대한 정보를 로그하는데 사용하려는 절대 또는 상대 경로 및 파일 이름을 지정합니다.
파일이 이미 존재한다면 pureQuery는 새 메시지를 파일의 기존 컨텐츠에 추가합니다. 기본적으로, 엔트리는 System.err에 기록됩니다.
-traceLevel OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL
로그할 정보 유형을 지정합니다. 기본 레벨은 OFF입니다. 로그 엔트리를 기록할 파일을 지정하지 않고 이 옵션을 OFF가 아닌 다른 값으로 설정하는 경우, 엔트리는 System.err에 기록됩니다.
-url connection-URL
데이터베이스를 연결하기 위한 유형 4 JDBC URL입니다.
이름 지정된 매개변수 마커를 사용하는 SQL문을 바인드할 경우, 데이터 소스에 대한 연결을 지정할 때 값이 1인 enableNamedParameterMarkers 특성을 지정해야 합니다. 다음 예제 -url 옵션은 testserver.test.com의 SAMPLE 데이터베이스에 연결하고 enableNamedParameterMarkers 특성을 지정합니다.
-url jdbc:db2://localhost:50000/SAMPLE:enableNamedParameterMarkers=1;
-username user-ID
데이터 소스에 연결하는 데 사용하는 사용자 ID입니다.
-verifyPackages DETAIL|SUMMARY
StaticBinder 유틸리티가 pureQueryXML 파일과 연관된 SQL문으로 존재하거나 존재하지 않는 패키지의 보고서를 작성할 것인지 여부를 지정합니다. 이 옵션을 사용하면 StaticBinder 유틸리티가 패키지를 바인드하지 않습니다.

예를 들어, myApp.pdqxml이라는 pureQueryXML에서 Configure 유틸리티를 실행했다고 가정합니다. 유틸리티를 실행했을 때 -collection, -pkgVersion 및 -rootPkgName 옵션에 대한 값이 제공되었으며 유틸리티는 이들 값을 pureQueryXML 파일에 저장했습니다. 이 파일의 이름을 지정하는 StaticBinder 유틸리티를 실행하면 유틸리티가 DB2 패키지를 작성합니다.

나중에 StaticBinder 유틸리티가 pureQueryXML 파일에서 작성한 패키지 목록을 볼 수 있습니다. 유틸리티를 실행 시, -verifyPackages 옵션을 사용하여 DETAIL 값을 지정하고 다시 파일 이름을 제공할 수 있습니다.

Configure 유틸리티를 pureQueryXML 파일에서 실행한 다음 StaticBinder 유틸리티를 실행한 후, 파일에서 다시 Configure 유틸리티를 실행하지 않고 -collection, -pkgVersion 및 -rootPkgName에 대해 다른 값을 제공하지 않았다는 전제 하에서 -verifyPackages 옵션이 동작합니다.

먼저 StaticBinder 유틸리티를 실행하고 -collection, -pkgName 및 -rootPkgName 값을 변경한 후 Configure 유틸리티를 myApp.pdqxml에서 실행하면 StaticBinder 유틸리티가 이들 옵션의 새 값과 일치하는 패키지를 찾지 못합니다. 보고서에서 StaticBinder 유틸리티는 찾고 있는 패키지가 없다고 보고합니다.

-collection, -pkgVersion 및 -rootPkgName 옵션 값이 StaticBinder 유틸리티를 이전에 실행했을 때와 같다면, 유틸리티가 해당 패키지를 찾아 나열합니다.

이 옵션은 -bindOptions 옵션과 함께 지정할 수 있습니다. 하지만 StaticBinder 유틸리티는 패키지를 바인드하지 않습니다. 패키지를 작성할 때 이 옵션을 사용하여 콜렉션을 지정한 경우 -bindOptions만을 사용하여 검증할 패키지 콜렉션을 지정하십시오.

세부사항
-collection, -pkgVersion 및 -rootPkgName 값을 기본으로 하는 다음 정보를 설명하는 보고서를 작성합니다.
  • 존재하지 않는 패키지
  • 존재하는 패키지. 각 패키지에 대해 보고서는 이름, 일관성 토큰, 시간소인 및 분리 레벨을 나열합니다.
  • 존재하거나 존재하지 않는 패키지 수
요약
-collection, -pkgVersion, 및 -rootPkgName의 값을 부여하는 존재하거나 존재하지 않는 패키지를 나열하는 보고서를 작성합니다.

피드백