(1) >>-java--com.ibm.pdq.tools.StaticBinder-------------------------> (2) >-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database--> '-:--port-' >-- -username--user-ID-- -password--password--------------------> .---------------------------------------------. V | >-- -pureQueryXml----+-pureQueryXML-file-----------------------+-+--> '-pureQueryXML-file--:--base-package-name-' >--+------------------------------------------------------------------------+--> | (3) | +-| DBRM options |-------------------------------------------------------+ +- -bindOptions-- -"--bind-options--"--+-------------------------------+-+ | '- -verifyPackages--+-DETAIL--+-' | | '-SUMMARY-' | '- -verifyPackages--+-DETAIL--+------------------------------------------' '-SUMMARY-' >--+----------------------------------------------+-------------> | .----------------------. | | V | | '- -configureWarning---- -configure-warnings-+-' >--+-----------------------------+--+----------------+----------> | .-FALSE-. | | (4) | '- -differenceOnly--+-TRUE--+-' '-| -grant |-----' >--+--------------------------+--+--------------------------+---> '- -isolationLevel--+-CS-+-' | .-FALSE-. | +-RR-+ '- -showDetails--+-TRUE--+-' +-RS-+ '-UR-' .-NOT_SET------. >-- -statementBindError--+-REMOVE-------+-----------------------> '-MARK_INVALID-' >--+-----------------------+--+--------------------------+------> | (5) | | .-FALSE-. | '-| Trace options |-----' '- -validateXml--+-TRUE--+-' >--+--------+-------------------------------------------------->< '- -help-'
각 옵션 값은 공백을 포함할 수 없습니다.
해당 옵션의 목록 및 설명은 BIND 명령을 참조하십시오.
Configure 유틸리티 -optionsFileForBind 옵션을 지정하면 Configure 유틸리티가 StaticBinder 옵션 파일을 생성합니다. 이 옵션 파일에는 바인드 옵션, SQL문에 기반한 추가 정보, 명령문 세트 및 pureQueryXML 파일의 DB2 특수 레지스터 정보가 들어 있습니다. Configure 유틸리티는 문제점을 감지한 경우 -configureWarning 옵션을 바인드 옵션에 추가합니다. 지정된 바인드 옵션을 사용하여 패키지를 데이터베이스에 바인드하고 SQL문을 정적으로 실행하면 동작이 올바르지 않을 수 있습니다.
또한 Configure 유틸리티는 명령문 세트의 주석행에 경고 토큰을 추가합니다. 주석은 명령문 세트 및 세트 내 SQL문과 관련된 경고 및 정보를 포함합니다. 경고를 수정하는 방법에 대한 정보는 Configure 유틸리티가 작성한 바인드 옵션 파일에서 경고와 함께 생성된 토큰에 대한 정보를 참조하십시오.StaticBinder 유틸리티를 실행할 때 -configureWarning 옵션을 지정하면 유틸리티가 연관된 패키지를 바인드하려고 합니다. 또한 StaticBinder 유틸리티는 경고가 지정하는 문제점에 대한 경고 메시지도 인쇄합니다.
-configureWarning 옵션은 다음 값을 사용할 수 있습니다.
또한 Configure 유틸리티는 명령문 세트의 주석행에 incrementalSpecialRegValuesPresent 토큰을 추가합니다.
또한 Configure 유틸리티는 명령문 세트의 주석행에 missingSpecialRegValueId(IDs) 토큰을 추가합니다.
또한 Configure 유틸리티는 명령문 세트의 주석행에 SQLGroupedBySpecialRegisters(MULTI_SRINFO) 토큰을 추가합니다.
또한 Configure 유틸리티는 명령문 세트의 주석행에 SQLGroupedBySpecialRegisters(INCONSISTENT_SRINFO) 토큰을 추가합니다.
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-----------><
생성된 DBRM 파일의 루트 이름은 Configure 유틸리티를 실행할 때 지정한 루트 패키지 이름입니다.
기본값은 FALSE입니다.
예를 들어, capture.pdqxml이라고 하는 pureQueryXML 파일에 대해 StaticBinder 유틸리티를 실행했다고 가정하겠습니다. 유틸리티는 패키지 MYPKGA, MYPKGB 및 MYPKGC를 작성합니다. 그러면 사용자는 워크벤치에서 capture.pdqxml의 명령문 세트 MYPKGA를 편집하고 -cleanConfigure 옵션을 기본값 FALSE로 하여 이 파일에 대해 Configure 유틸리티를 실행합니다. Configure 유틸리티는 새 일관성 토큰을 명령문 세트에 지정합니다. 이 세트가 변경되었기 때문입니다. MYPKGA의 새 버전을 바인드하기 위해 다시 capture.pdqxml에서 StaticBinder 유틸리티를 실행하는 경우 -differenceOnly TRUE를 지정합니다. 유틸리티는 MYPKGA만 리바인드하고 다른 두 패키지는 리바인드하지 않습니다.
.-,--------------------. V | >>- -grant-- "--grantees--(----+-authorization-ID-+-+--) - "--->< '-PUBLIC-----------'
Linux, UNIX 및 Windows용 DB2 데이터베이스: USER, GROUP 및 ROLE 키워드를 사용할 수 있습니다. 이들 키워드에 관한 정보는 GRANT(패키지 특권) 명령문을 참조하십시오.
z/OS용 DB2: ROLE 키워드를 사용할 수 있습니다. 이 키워드에 관한 정보는 GRANT(패키지 특권)를 참조하십시오.
제한사항: -generateDBRM 옵션 값이 TRUE이면 -grant 옵션을 사용할 수 없습니다.
분리 레벨은 패키지에 있는 모든 SQL문에 적용됩니다. 분리 레벨을 JDBC 및 SQLJ용 IBM® 데이터 서버 드라이버의 Connection.setTransactionIsolation() 메소드를 통해 설정하면, pureQuery는 정적으로 실행된 명령문의 해당 분리 레벨을 무시합니다.
파일 확장자는 .pdqxml 또는 .xml이어야 합니다. 파일은 애플리케이션의 클래스 경로에 있는 자원이거나 파일의 전체 또는 상대 경로를 제공해야 합니다.
이전에 유효하지 않은 것으로 표시된 SQL문은 보고서에 표시되지 않습니다.
구성 옵션 -restoreInvalidSQLForce를 사용하여 유효하지 않은 것으로 표시된 SQL문을 복원할 수 있습니다. -removeInvalidSQL 옵션을 사용하여 명령문을 제거할 수 있습니다.
-statementBindError 옵션을 MARK_INVALID 또는 REMOVE 값을 사용하여 지정하는 경우 pureQueryXML 파일은 쓰기 가능해야 합니다. StaticBinder 유틸리티에서 파일을 업데이트할 수 없는 경우 오류가 표시되고 파일이 처리되지 않습니다.
pureQuery DAO(Data Access Object) 인터페이스 구현 클래스를 바인드하는 경우 -statementBindError 옵션이 지원되지 않습니다. 구현 클래스를 바인드하기 위해 StaticBinder 유틸리티를 실행하고 MARK_INVALID 또는 REMOVE 값을 사용하여 옵션을 지정하는 경우 유틸리티는 경고를 표시하고 클래스를 바인드하지 않습니다.
>>-+------------------------+--+---------------------------+--->< '- -traceFile--file-name-' | .-OFF-----. | '- -traceLevel--+-ALL-----+-' +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'
-url jdbc:db2://localhost:50000/SAMPLE:enableNamedParameterMarkers=1;
예를 들어, 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만을 사용하여 검증할 패키지 콜렉션을 지정하십시오.
XML 스키마 유효성 확인의 성공 또는 실패가 판별되며 각 입력 파일에 대해 보고됩니다. 하나의 입력 파일이 실패하는 경우, StaticBinder 처리는 중지되지 않으며 연속되는 파일이 처리됩니다.
pureQueryXML 파일이 스키마 유효성 확인을 실패하는 경우 해당 파일 내의 패키지는 바운드되지 않습니다. 첫 번째 스키마 유효성 확인 오류 및 해당 파일의 바인드 실패가 보고됩니다.
현재 릴리스 또는 이전 버전 pureQueryXML 파일만 유효성 확인됩니다(버전 4 또는 3). 이전 버전 pureQueryXML이 발견되는 경우, 유효성 확인은 해당 파일에서 수행되지 않습니다.