애플리케이션에서 캡처된
SQL문을 포함하고 단일 데이터 소스에 대해 실행하는 두 개 이상의
pureQueryXML 파일을 함께 병합할 수 있습니다. XML
스키마 유효성 확인을 입력 pureQueryXML 파일에 대해 수행할 수 있으며
사용되지 않는 SQL문을 출력 병합 파일에서 제거할 수 있습니다.
개요
pureQueryXML 파일을 병합할 수 있는
두 가지 방법이 있습니다.
- 병합으로 인한
파일에서 해당 파일의 명령문이 보존되도록 하려면
pureQueryXML 파일을 기본 파일로 사용하십시오. 병합에 있는 다른
파일의 SQL문은 pureQuery가 결과 파일 끝에서 작성하는 이름 지정되지 않은
명령문 세트로 이동합니다.
예를 들어, capture.pdqxml이라는 파일에서 애플리케이션을 통해
SQL문을 캡처할 수 있습니다. 이 파일의 SQL문을 직접 또는 Configure 유틸리티를 사용하여
원하는 명령문 세트에 배열하도록 파일을 수정합니다. capture.pdqxml은
Merge 유틸리티 사용 시 기본 파일이 됩니다.
권장사항: IBM®은
워크벤치만을 사용하여 pureQueryXML 파일을 편집할 것을 강력하게 권장합니다. 워크벤치
이외의 편집기에서 pureQueryXML 파일을 편집한 경우 파일을 사용하지 못할 수 있습니다.
워크벤치가 아닌 다른 편집기에서 pureQueryXML 파일을 편집해야 한다면,
편집하는 명령문 세트의 <statementSet> 태그에서
configureStatus 속성 값을 REQUIRED로 설정한 다음(configureStatus="REQUIRED"와 같이),
파일에서 Configure 유틸리티를 실행하십시오.
pureQueryXML 파일의 명령문 세트는
사용자가 하나의 분리 수준에 대해 하나의 패키지를 원하는지, 또는 네 개의
분리 수준 각각에 대해 하나의 패키지를 원하는지 여부에 따라 하나 또는
네 개의 DB2® 패키지에 대한 기초를 형성하는
명령문 세트입니다.
Java 애플리케이션의 경우
Configure 유틸리티가 명령문 세트 이름을 지정할 수 있도록 capture.pdqxml에 대해
Configure 유틸리티를 실행합니다. 그런 다음 동일 애플리케이션의 다른 논리 경로에서
점차적으로 명령문을 캡처할 수 있도록 팀의 다른 구성원에게
이 파일의 사본을 제공합니다. 각 구성원은
사본을 입력 파일로 사용하며 파일을 pureQueryXml 특성의
값으로 지정합니다. 각 구성원은
outputPureQueryXml 특성의 값을
캡처하는 추가 SQL문을 포함할 파일의 이름으로
설정합니다. 팀 구성원은
자신의 출력 파일을 제공합니다. Merge 유틸리티를 실행하여
병합에 제공된 파일의 SQL문을 포함하는 새 파일을 작성합니다.
새 파일을 열면, 기본 파일에 있었던 명령문 세트를 계속 포함하고 있는 것을
보게 됩니다. 팀 구성원이 제공한 출력 파일의 SQL문은
새 파일의 끝에 있는 이름 지정되지 않은
새 명령문 세트에 있습니다.
- pureQueryXML 파일 중 하나를 기본 파일로
지정하지 않고 두 개 이상의 pureQueryXML 파일을 병합할 수 있습니다.
병합에서 발생하는
파일에서, Merge 유틸리티는 모든 pureQueryXML 파일의 SQL문을
이름 지정되지 않은 단일 명령문 세트에 결합합니다.
주: -baseFile 옵션이
지정되지 않은 경우, pureQueryXML 파일 목록의 첫 번째 파일이 기본 파일로 사용됩니다. 이 파일은
outputPureQueryXml 및 pureQueryXML 특성이 모두
지정되었을 때 추가 SQL문을 캡처하기 위해 작성된 pureQueryXML 파일일 수 없습니다. 두 특성이
모두 지정되었을 때 outputPureQueryXml은
pureQueryXML 특성으로 지정된 pureQueryXML 파일에는
표시되지 않는 캡처된 SQL문을 포함합니다.
병합 프로세스에 대한
참고사항
다음 목록은
병합 프로세스에 대한 참고사항입니다.
- 파일을 병합할 때 파일은 다른 속성을 갖는 동일한 SQL문을
포함할 수 있습니다. 다음 목록은 Merge 유틸리티가
다른 속성을 갖는 동일한 SQL문을 처리하는 방법을 설명합니다.
이 설명은 STMT_A 및 STMT_B가 동일한 SQL문이고
STMT_A가 기본 파일이며 STMT_B가 기본 파일에 병합된 파일에 있음을
가정합니다.
다음 상황에서 Merge 유틸리티가 속성 변경사항을 로그하고
STMT_A의 속성 값이 변경되지 않습니다.
- STMT_A의 속성 parameterType이 MULTI_ROW_PARAMETERS로 설정되면
STMT_B의 parameterType이 SINGLE_ROW_PARAMETERS로 설정됩니다.
- STMT_A의 속성 allowStaticRowsetCursors가
true로 설정되면 STMT_B가 false이거나 비어 있는 문자열입니다.
- STMT_A의 속성 isBindable이 false로 설정되면
STMT_B는 true입니다.
- STMT_A의 속성 cursorName에 사용자 정의된 커서가 있고
STMT_B에 사용자 정의된 커서가 없는 경우
또한 다른 pureQueryXML 파일에 있는
두 개의 명령문이 스택 추적 엔트리를 제외하고 모든 점에서
동일한 경우, 병합으로 발생하는 파일에서 결과로 생성되는
단일 명령문에 대해 다른 스택 추적 엔트리가 결합됩니다.
- 파일을 병합할 때
특수 레지스터는 다음 방식으로 처리됩니다.
- STMT_B에 특수 레지스터 벡터 값이 있고
STMT_A에 특수 레지스터 벡터가 없는 경우 STMT_A의
특수 레지스터 속성 incrementalSpecialRegValuesUsed는 STMT_B에서 찾은 해당 값으로 설정됩니다.
- STMT_A 및 STMT_B 모두에 특수 레지스터 벡터 값이 있는 경우
STMT_A의 특수 레지스터 벡터는 명령문에서 찾은 조합으로
대체됩니다.
- 출력 병합 파일에서 명령문이
기본 파일 및 모든 입력 파일에 대해 true인 경우
XML 속성 sqlLiteralSubstitution이 NOT_SET로 설정됩니다.
- XML 속성 sqlLiteralSubstitution이 파일에 포함되어 있지 않습니다.
- XML 속성 sqlLiteralSubstitution의 값이 NOT_SET로 설정됩니다.
속성이
입력 파일에 포함되어 있지 않더라도 sqlLiteralSubstitution 속성이 병합 출력 파일에 추가됩니다.
- 출력 병합 파일에서 기본 파일 또는 하나 이상의 입력 파일에
DISABLE 또는 ENABLE로
설정된 XML 속성 sqlLiteralSubstitution의 값이 있는 경우 XML 속성 sqlLiteralSubstitution의 값이
DISABLE 또는 ENABLE로 설정됩니다.
Merge 유틸리티는
병합 파일의 값을 DISABLE 또는 ENABLE로 설정된
sqlLiteralSubstitution 속성의 값이 있는 마지막 입력 파일에 지정된 값으로 설정합니다.
XML
속성 sqlLiteralSubstitution의 값이 하나 이상의 입력 파일에서 DISABLE로 설정되고
기타 입력 파일에서 ENABLE로 설정되는 경우
유틸리티가 경고 메시지를 표시합니다.
- 병합에서 발생하는 파일에
이름 지정되지 않은 명령문 세트가 포함되는 경우, 이 파일에 대해
Configure 유틸리티를 실행한 후 StaticBinder 유틸리티를 실행해야 합니다.
- IBM은 파일 병합 후
구성을 실행하여 병합 결과를 StaticBinder 유틸리티에 사용할 수 있는지
확인할 것을 권장합니다.
Merge 명령의 구문

(1)
>>-------java com.ibm.pdq.tools.Merge--+------------------+----->
'- -baseFile--file-'
.------.
V |
>--+- -inputPureQueryXml----file-+--+--------------------------->
'- -inputPureQueryXmlGroup--file-'
>-- -outputPureQueryXml--file--+-----------------------+-------->
| (2) |
'-| Trace options |-----'
>--+--------------------------+--------------------------------->
| .-FALSE-. |
'- -showDetails--+-TRUE--+-'
>--+--------------------------------------+--------------------->
'- -removeSQLInactiveForDays----days---'
>--+--------------------------+--+--------+--------------------><
| .-FALSE-. | '- -help-'
'- -validateXml--+-TRUE--+-'
주:
- 임의의 순서로 옵션을
지정할 수 있습니다.
- 구문의 경우 해당 옵션의 설명을 참조하십시오.
다이어그램에서 사용되는
규칙을 이해하려면 구문 다이어그램 읽는 방법을 참조하십시오.
옵션에 대한 설명
- -baseFile file
- 명령문 세트를 보존하려는 경우, Merge 유틸리티가 작성하는
파일에서 보존할 명령문 세트를 포함하는 pureQuery 파일을 지정합니다.
이 파일에 대해 Merge 유틸리티를 실행하기 전에 Configure 유틸리티를
실행해야 합니다.
함께 병합하는 파일 중 하나에 있는 SQL문이
위치 지정된 업데이트사항을 수행하고, 이 위치 지정된 업데이트사항에 대한 커서를
선언하는 명령문이 동일한 파일에 없는 경우, Merge 유틸리티는 병합 중인
파일에서 커서 선언을 찾습니다.
예를 들어,
클러스터된 웹 애플리케이션에서 SQL문을 캡처하고 세 개의
pureQueryXML 파일 A, B, C를 생성했다고 가정하십시오. 파일 A에는
위치 지정된 업데이트사항을 수행하는 SQL문 S1이 있습니다. 하지만
파일 A에는 S1이 사용하는 커서를 선언하는 SQL문 S2가 없습니다.
따라서 Merge 유틸리티는 이 커서를 선언하는 SQL문을 파일 B 및 C에서
찾습니다. 이러한 명령문이 파일 B 또는 C에 없는 경우, Merge 유틸리티는
위치 지정된 업데이트 명령문 S1을 병합하지 않고 경고를 로그합니다.
기본 파일을 지정하지 않은 경우, 병합에서 발생하는
파일에서, Merge 유틸리티는 모든 pureQueryXML 파일의 SQL문을
이름 지정되지 않은 단일 명령문 세트로 결합합니다.
주: 기본 파일을
지정하지 않은 경우, 나열된 첫 번째 입력 pureQueryXML 파일이
기본 기본 파일입니다. 이 파일은
outputPureQueryXml 및 pureQueryXML 특성이 모두
지정되었을 때 추가 SQL문을 캡처하기 위해 작성된 pureQueryXML 파일일 수 없습니다. 두 특성이
모두 지정되었을 때 outputPureQueryXml은
pureQueryXML 특성으로 지정된 pureQueryXML 파일에는
표시되지 않는 캡처된 SQL문을 포함합니다.
- -inputPureQueryXml file
- 함께 병합할 pureQueryXML 파일을 지정합니다(이름은
스페이스로 구분합니다). 여러 개의 절대 또는 상대 경로를 지정할 수 있습니다.
상대 경로를
지정하는 경우 경로는 명령을 실행하는 디렉토리에 상대적이어야 합니다.
- 파일의 경로 또는 이름에 스페이스가 있으면,
파일의 전체 엔트리를 인용 부호로 묶으십시오.
- -inputPureQueryXmlGroup file
- 함께 병합할 pureQueryXML 파일을 지정합니다.
파일 확장자는 .grp여야 합니다. 각 파일 라인마다 하나의
파일 이름을 지정할 수 있습니다(각각 절대 또는 상대 경로를 제공하여). 상대 경로를
지정하는 경우 경로는 명령을 실행하는 디렉토리에 상대적이어야 합니다.
- 파일의 경로 또는 이름에 스페이스가 있는 경우에도
파일의 전체 엔트리를 인용 부호로 묶지 않아도 됩니다.
- -outputPureQueryXml file
- 이전 옵션에서 지정하는 pureQueryXML 파일에서 Merge 유틸리티가 작성하도록 할
새 파일의 이름을 지정합니다. 절대 경로 또는 상대 경로를 지정할 수 있습니다.
상대 경로를
지정하는 경우 경로는 명령을 실행하는 디렉토리에 상대적이어야 합니다.
- -removeSQLInactiveForDays days
- 명령문 시간소인을 기준으로 사용되지 않은 SQL문이
제거되는 경과 일 수를 지정합니다. days 변수가
0인 경우, 모든 SQL문이 출력 파일에 기록됩니다. 기본
설정은 모든 SQL문을 출력 파일에 쓰는 것입니다. days 변수가
양수인 경우, 명령문의 최종 사용 시간소인이 현재 날짜에서
해당 일 수 이전이거나 그 이전이면(기준 날짜 포함) Merge 유틸리티는
SQL문을 출력 파일에 쓰지 않습니다. days 변수가
1인 경우, 시간소인이 전날이거나 그보다 이전이면 SQL문은
기록되지 않습니다.
예를 들어, days 변수가
5이고 현재 날짜가 11/25(11월 25일)인 경우, 시간소인이 11/20(11월 20일)인 SQL문은
기록되지 않습니다.
SQL문에 시간소인이 없는 경우,
SQL문은 현재 시간을 사용한 시간소인 정보를 포함하여 출력 파일에
기록됩니다. 예를 들어, 이전 버전의 pureQueryXML 파일이
입력 파일인 경우에는 SQL문에 시간소인이 없습니다. pureQueryXML 파일의
이전 버전(버전 3 또는 그 이전)에서는 이 옵션이 무시되고 모든 SQL문이
현재 시간 시간소인을 사용하여 출력 파일에 기록되며
메시지가 표시됩니다.
명령문 세트의
configureStatus가 FINAL인 경우, 비활성 기간(일) 동안
기준을 충족하는 명령문이 출력 pureQueryXML 파일에 기록되고
Merge 유틸리티는 명령문 및 명령문 보존 이유를 포함한 메시지를
로그 파일에 기록합니다.
출력 pureQueryXML 파일에 기록되지 않는
SQL문에 대한 메시지가 로그 파일에 기록됩니다. -showDetails 옵션이
true인 경우, 출력 파일에 기록되지 않은 모든 명령문이
표시됩니다.
주: SQL문이 출력 pureQueryXml 파일에 기록되지는 않지만
이전에 명령문 세트에서 바인드된 DB2 패키지에서
삭제되지는 않습니다. 이후에 명령문 세트를 사용한 바인드 조작은
제거된 SQL문을 바인드하지는 않지만 패키지에 빈 섹션을 남겨둘 수 있습니다. 빈 섹션을 제거하는
한 가지 방법은 pureQueryXML 파일에 대해 Configure 유틸리티를 -cleanConfigure 옵션과 함께
사용하는 것입니다. 그런 다음 StaticBinder 유틸리티를 사용하여
pureQueryXML 파일에서 패키지를 작성하고 바인드하십시오.
- -showDetails TRUE|FALSE
- Merge 유틸리티가 활동 요약을 표시하는지 여부를
지정합니다.
- 기본값은 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에 기록됩니다.
- -validateXml TRUE|FALSE
- 입력 pureQueryXML 파일에 대해 pureQueryXML 스키마를 사용하여
XML 스키마 유효성 확인이 수행되는지 여부를 지정합니다. 값이
TRUE이면 유효성 확인이 수행됩니다. 값이 FALSE이거나 옵션이
지정되지 않으면 유효성 확인이 수행되지 않습니다. 기본값은
FALSE입니다.
pureQueryXML 파일이 XML 스키마 유효성 확인에 실패하는 경우,
병합 조작이 실패합니다. 스키마 유효성 확인 실패의 원인이 된 파일 이름 및 오류가
보고됩니다. 후속 파일에 대해서는 유효성 확인이 수행되지 않습니다.
첫 번째 유효성 확인 오류가 보고되고 병합 실패가 보고됩니다.
현재 릴리스 또는
이전 버전의 pureQueryXML 파일(버전 4 또는 3)에 대해서만 유효성 확인이
수행됩니다. 이전 버전의 pureQueryXML이 발견되는 경우, 해당 파일에 대해서는
유효성 확인이 수행되지 않습니다.
- -help
- 요약 사용 정보를 표시합니다.