captureMode 특성

SQL문에 관한 정보를 캡처할지 여부와 캡처할 정보의 유형을 지정합니다.

이 정보는 pureQueryXml 특성으로 지정되는 파일 또는 outputPureQueryXml 특성으로 지정된 위치에 기록됩니다. 위치가 데이터베이스에 작성된 저장소인 경우 정보는 propertiesGroupId 특성으로 지정된 저장소 런타임 그룹에 기록됩니다.

captureMode를 ON으로 설정된 애플리케이션을 실행할 경우 캡처할 SQL문을 포함하는 모든 논리 경로를 성공적으로 실행해야 합니다. pureQuery는 성공적으로 실행된 경우에만 SQL문을 캡처합니다.

z/OS®용 DB2® 데이터베이스에 액세스하는 애플리케이션에서 SQL문을 캡처하는 경우 pureQuery Runtime은 다중 행 삽입(MRI)이 가능한 SQL문을 추적합니다. pureQuery 유틸리티 Configure 및 StaticBinder는 명령문을 처리할 때 정보를 사용합니다.

낙관적 잠금을 사용하여 SQL문이 실행되는 경우 명령문을 정적으로 실행할 수 없습니다. 결과적으로 pureQuery Runtime은 낙관적 잠금을 사용하여 실행되는 명령문을 캡처하지 않습니다. 명령문은 pureQuery Runtime 옵션 allowDynamicSQL 또는 capturedOnly의 영향을 받지 않습니다. 낙관적 잠금은 다음 방법 중 하나를 사용하여 적용됩니다.

DB2Connection.prepareDB2OptimisticLockingQuery
DB2Statement.executeDB2OptimisticLockingQuery

이 특성은 다음과 같은 값을 가질 수 있습니다.

ON
애플리케이션이 실행될 때 SQL문 레코드 SQL 런타임 정보를 캡처합니다.
OFF
기본값입니다. 애플리케이션이 실행될 때 SQL문을 캡처하지 않도록 지정합니다.
NEW_STMTS
새 SQL만 캡처됨을 지정합니다. SQL문으로 캡처된 특수 레지스터 설정이 pureQueryXML 파일의 설정과 다른 경우 pureQuery Runtime이 SQL 런타임 정보를 기록합니다. 예를 들어, SQL문이 캡처되고 동일한 명령문이 다른 스키마 설정으로 다시 캡처되는 경우 pureQuery Runtime이 pureQueryXML 파일의 SQL문과 연관된 정보를 새 스키마 정보로 업데이트합니다.

실행 시간 및 실행 계수와 같은 SQL 정보는 캡처되지 않습니다.

이 값은 Java 애플리케이션에만 지원됩니다.

다른 입력 및 출력 pureQueryXML 파일을 지정하는 경우 새 명령문만 출력 파일에 기록됩니다.

captureMode 특성의 값을 NEW_STMTS로 설정하는 경우 pureQuery Runtime 특성의 기본값이 변경됩니다. 다음 테이블에 변경된 기본값이 나열됩니다.
표 1. captureMode 특성이 NEW_STMTS로 설정되는 경우 pureQuery Runtime 특성의 기본값
pureQuery Runtime 특성 기본값
maxNonParmSQL 100
maxStackTracesCaptured 1
stackTraceDepth 5
sqlLiteralSubstitution NOT_SET

pureQuery Runtime 특성의 값을 지정하여 기본값을 겹쳐쓸 수 있습니다.

LITE
감소된 스택 추적 정보 양이 SQL문과 함께 캡처되도록 지정합니다. 캡처되는 데이터의 양을 줄이면 캡처 프로세스가 자원을 덜 소비합니다. pureQuery Runtime은 새로 캡처되고 이전에 캡처된 SQL문 모두의 pureQueryXML 파일을 업데이트합니다.

실행 시간 및 실행 계수와 같은 SQL 정보가 캡처됩니다.

이 값은 Java 애플리케이션에만 지원됩니다.

captureMode 특성의 값을 LITE로 설정하는 경우 pureQuery Runtime 특성의 기본값이 변경됩니다. 다음 테이블에 변경된 기본값이 나열됩니다.
표 2. captureMode 특성이 LITE로 설정되는 경우 pureQuery Runtime 특성의 기본값
pureQuery Runtime 특성 기본값
maxStackTracesCaptured 1
stackTraceDepth 5
sqlLiteralSubstitution NOT_SET

pureQuery Runtime 특성의 값을 지정하여 기본값을 겹쳐쓸 수 있습니다.

DB2 CLI 및 IBM Data Server Driver 사용법 참고

DB2 CLI(Call Level Interface) 또는 IBM® Data Server Driver를 pureQuery 런타임에 사용하는 경우 pureQuery Runtime 특성을 구성 키워드로 사용할 수 있습니다.

IBM CLI 키워드 구문
captureMode = ON | OFF
IBM Data Server Driver 구성 구문
<parameter name="captureMode" value="ON | OFF" />
.NET 연결 문자열 키워드에 대한 해당 IBM Data Server Provider
N/A

사용 참고사항

pureQuery 클라이언트 최적화에 사용 가능한 CLI 애플리케이션은 파일의 데이터를 캡처하기 위한 pureQueryXml 키워드만 지원합니다.

이름 지정된 매개변수 표시문자를 포함한 Java 애플리케이션이 올바르게 작동하도록 하려면 데이터 서버 유형과 버전에 상관없이 이름 지정된 매개변수 표시문자를 애플리케이션에 사용하기 전에 특성 Connection 또는 DataSource enableNamedParameterMarkersDB2BaseDataSource.YES로 설정하십시오.

예제

이 예에서 회사는 pureQuery 클라이언트 최적화를 사용하는 애플리케이션에서 이전에 SQL문을 캡처했습니다. 명령문은 pureQueryXML 파일에 있습니다. 회사가 애플리케이션 및 pureQueryXML 파일 prod-v1.pdqxml을 프로덕션 환경에 배치했습니다. 바인드 프로세스를 수행하여 프로덕션 데이터베이스에서 SQL문이 정적으로 실행됩니다. 그러나 애플리케이션이 실행하는 모든 SQL문이 캡처되는지 여부는 알 수 없습니다. 이전에 캡처되지 않은 SQL문만 캡처하기 위해 회사는 captureMode 특성의 값을 NEW_STMTS로 설정할 수 있습니다. 다음 특성 설정은 명령문이 pureQueryXML 파일 prod-v1.pdqxml이 아닌 경우 the pureQueryXML 파일 newStmt.pdqxml에서 SQL문을 캡처하도록 pureQuery Runtime을 구성합니다.
executionMode=STATIC
captureMode=NEW_STMTS
pureQueryXml=prod-v1.pdqxml
outputPureQueryXml=newStmt.pdqxml

새 명령문만 캡처됩니다. 새 명령문에 대한 스택 추적 및 통계는 캡처되지 않습니다. 캡처 프로세스는 자원을 덜 소비하는 프로세스이며 프로덕션 환경에서 승인될 수 있습니다.

이 예에서 회사는 pureQuery 클라이언트 최적화를 사용하는 애플리케이션에서 광범위한 스택 추적 정보를 캡처하지 않고 SQL문을 캡처하려고 합니다. 다음 pureQuery Runtime 특성을 사용하여 애플리케이션이 실행한 SQL문이 pureQueryXML 파일 capture.pdqxml에 캡처됩니다. 명령문은 애플리케이션 튜닝을 위해 사용할 수 있는 명령문 실행 시간과 같은 추가 런타임 정보와 함께 캡처됩니다.
executionMode=DYNAMIC
captureMode=LITE
pureQueryXml=capture.pdqxml

피드백