Configure 유틸리티로 작성한 StaticBinder 옵션 파일

Configure 옵션 -groupSQLBySpecialRegisters 및 -optionsFileForBind를 사용하여 pureQueryXML 파일에 대한 StaticBinder 옵션을 작성하십시오. 파일에 있는 바인드 옵션과 기타 정보는 DB2® 데이터베이스에서 정적으로 실행되는 SQL문이 애플리케이션에서 발행되고 동적으로 실행되는 경우와 유사하게 작동되도록 바인드 옵션 세트를 지정하는 데 도움을 줍니다.

-groupSQLBySpecialRegisters 옵션을 지정할 때, Configure 유틸리티는 pureQueryXML 파일에 있는 SQL문을 해당 SQL문이 캡처될 때 기록된 특수 레지스터 정보를 기준으로 하여 명령문 세트에 그룹화합니다. 기록된 특수 레지스터 설정은 SQL문의 작동에 영향을 줄 수 있습니다.

-optionsFileForBind 옵션을 지정할 때, Configure 유틸리티는 StaticBinder 옵션 파일을 생성하고, SQL이 캡처될 때 기록된 특수 레지스터 설정에 따라 명령문 세트에 대한 바인드 옵션 세트를 생성하려고 시도합니다. 명령문 세트에 있는 명령문이 단일 특수 레지스터 값 세트에 따라 그룹화된 경우, Configure 유틸리티는 단일 바인드 옵션 세트를 생성합니다. 명령문 세트가 여러 세트의 특수 레지스터 값에 따라 그룹화된 경우, 유틸리티는 각 특수 레지스터 설정에 대한 바인드 옵션 세트가 포함된 주석을 작성합니다. 유틸리티는 또한 pureQueryXML 파일에 있는 명령문 세트, SQL문 및 특수 레지스터 설정에 대한 정보 및 경고가 포함된 주석을 추가합니다.

바인드 옵션은 SQL문을 정적으로 실행하기 위해 DB2 데이터베이스에 패키지를 바인드할 때 필요할 수 있습니다. 바인드 옵션은 SQL문이 정적으로 실행될 때 동적으로 실행될 때와 유사하게 작동되도록 하기 위해서도 필요할 수 있습니다.

생성된 바인드 옵션을 StaticBinder 유틸리티에서 사용하기 전에 바인드 옵션을 검토하십시오. 필요하면 사용자 환경에 따라 바인드 옵션을 수정하여 SQL문이 정적으로 실행될 때 올바르게 작동하도록 하십시오.

명령문 세트에 대한 바인드 옵션 세트를 지정할 수 없는 경우도 있습니다. StaticBinder 유틸리티가 바인드 조작을 수행하지 않도록 지정할 수 있습니다. pureQueryXML 파일에서 XML 속성 isBindable의 값을 명령문 세트에 대해 FALSE로 설정하고 pureQueryXML 파일을 다시 구성하십시오. isBindable 속성 및 속성 변경에 대한 정보는 pureQueryXML 파일에 있는 XML 속성 isBindable의 내용을 참조하십시오.

StaticBinder 옵션 파일의 형식

Configure 유틸리티로 생성한 파일은 pureQuery StaticBinder 유틸리티 옵션 파일 형식을 가집니다. Configure 유틸리티로 생성한 옵션 파일은 주석, defaultOptions 엔트리 및 바인딩 명령문 세트에 대한 엔트리로 이루어집니다.

주석
주석은 # 기호로 시작합니다. # 기호부터 행의 끝까지의 텍스트는 StaticBinder 유틸리티에서 무시됩니다. Configure 유틸리티는 엔트리 행에 주석을 추가하고 별도의 주석행을 작성합니다.

주석은 경고 및 정보를 포함하며 바인드 옵션 세트를 포함할 수도 있습니다. 주석에 있는 정보에 대한 내용은 Configure 유틸리티로 생성한 주석의 내용을 참조하십시오.

defaultOptions 엔트리
옵션 파일에 나열된 모든 pureQueryXML 파일에 대한 바인드 옵션을 지정합니다. defaultsOptions 엔트리는 다음 텍스트로 시작합니다.
defaultOptions = 

Configure 유틸리티는 -groupSQLBySpecialRegisters가 지정되지 않고 명령문 세트가 특수 레지스터 정보를 기준으로 그룹화되지 않은 경우에만 defaultOptions 엔트리에 바인드 옵션을 추가합니다.

Configure 유틸리티는 바인드 옵션을 생성하고 추가 정보가 있는 주석을 추가할 수 있습니다. 연결 URL 또는 분리 수준과 같은 항목에 대해 다른 옵션을 추가할 수 있습니다. defaultOptions 엔트리에 대한 정보는 이 주제의 맨 끝에 있는 "클라이언트 최적화를 위한 StaticBinder 유틸리티의 옵션 파일에 있는 디폴트 옵션의 구문"에 대한 링크를 참조하십시오.

다음 예제 defaultOptions 엔트리에서 모든 SQL문은 단일 특수 레지스터 값 세트를 사용합니다. 이 엔트리는 읽기 쉽도록 여러 행으로 표시됩니다.
defaultOptions = -bindOptions "QUALIFIER(SCHM4) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) 
   ROUNDING(HALFEVEN) DEC(15)" 
   # WARNING: [specialRegValueId(C:\myDir\capture.pdqxml:4) 
   minimumDivideScale(8) SQLID(ADMF003)]
# 문자 앞에 있는 텍스트는 defaultOptions 엔트리입니다.
defaultOptions = -bindOptions "QUALIFIER(SCHM4) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM)
   ROUNDING(HALFEVEN) DEC(15)"
# 다음에 있는 텍스트는 행에 대한 주석 텍스트입니다. 예제 엔트리에 있는 주석은 경고 토큰을 포함하고 있습니다.
# WARNING: [specialRegValueId(C:\myDir\capture.pdqxml:4) minimumDivideScale(8) SQLID(ADMF003)]
다음 예제 defaultOptions 엔트리는 주석만 포함하고 있습니다.
defaultOptions = # WARNING: SQLGroupedBySpecialRegisters(NOT_GROUPED)
명령문 세트 바인드 옵션

다음 형식은 명령문 세트에 대한 바인드 옵션을 지정합니다.

pureQueryXML-file:base-package-name=bind-options

Configure 유틸리티로 생성한 엔트리는 명령문 세트 정보와 바인드 옵션만 포함하고 있습니다. 다른 옵션을 추가할 수 있습니다. 엔트리는 명령문 세트에 대해 추가 정보 및 경고가 있는 주석을 포함할 수 있습니다.

명령문 세트를 바인드하기 위한 엔트리에 대한 정보는 이 주제의 맨 끝에 있는 "클라이언트 최적화를 위한 StaticBinder 유틸리티의 옵션 파일에 있는 엔트리의 구문"에 대한 링크를 참조하십시오.

다음 예제는 명령문 세트를 바인드하기 위한 엔트리입니다. 이 엔트리는 읽기 쉽도록 여러 행으로 표시됩니다.

C:\myDir\capture.pdqxml:MYRPN1K = -bindOptions "QUALIFIER(SCHM9) 
    FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) ROUNDING(HALFEVEN) DEC(15)" 
    # WARNING: [specialRegValueId(10) minimumDivideScale(3) UNTRACKED_SET] 
    INFO: configureStatus(FINAL) SQLGroupedByStrings(*NO_MATCH_FOUND*)
# 문자 앞에 있는 텍스트는 pureQueryXML 파일 C:\myDir\capture.pdqxml에 있는 명령문 세트 MYRPN1K를 바인딩하기 위한 엔트리입니다.
C:\myDir\capture.pdqxml:MYRPN1K = -bindOptions "QUALIFIER(SCHM9) 
    FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) 
    ROUNDING(HALFEVEN) DEC(15)"
# 다음에 있는 텍스트는 행에 대한 주석 텍스트입니다. 주석은 명령문 세트에 관련된 경고 및 정보 토큰을 포함하고 있습니다.
# WARNING: [specialRegValueId(10) minimumDivideScale(3) UNTRACKED_SET] 
INFO: configureStatus(FINAL) SQLGroupedByStrings(*NO_MATCH_FOUND*)

Configure 유틸리티로 생성한 주석

Configure 유틸리티는 옵션 파일에 있는 엔트리에 주석을 추가하고 별도의 주석행을 작성합니다.
  • 엔트리에 추가된 주석은 해당 엔트리에 대한 정보를 포함합니다.
  • 별도의 주석행은 특수 레지스터 값 세트에 대한 바인드 옵션 세트를 나열합니다.
옵션 파일 엔트리에 주석이 추가될 경우, 주석은 엔트리에 따라 달라집니다. 다음 예제 엔트리에서는 엔트리에 주석이 추가됩니다. 이 엔트리는 읽기 쉽도록 여러 행으로 표시됩니다.
MYRPN1K = -bindOptions "QUALIFIER(SCHM9) 
    FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) ROUNDING(HALFEVEN) DEC(15)" 
    # WARNING: [specialRegValueId(10) minimumDivideScale(3) UNTRACKED_SET] 
    INFO: configureStatus(FINAL) 
예제 엔트리의 주석에서 대괄호 안에 표시된 토큰은 특수 레지스터 값 세트와 연관됩니다. 예제 엔트리에서 대괄호는 두 개의 토큰 minimumDivideScale(3) 및 UNTRACKED_SET를 특수 레지스터 값 세트 ID 10과 함께 그룹화합니다.
# WARNING: [specialRegValueId(10) minimumDivideScale(3) UNTRACKED_SET] 
    INFO: configureStatus(FINAL)
대괄호 안에 표시되지 않은 토큰은 명령문 세트를 참조합니다. 예제 엔트리는 명령문 세트 MYRPN1K에 대한 구성 상태를 FINAL로 지정하는 하나의 정보용 토큰을 포함합니다.
    INFO: configureStatus(FINAL)

Configure 유틸리티는 -groupSQLBySpecialRegisters가 지정되었거나 명령문 세트가 특수 레지스터 정보를 기준으로 그룹화된 경우 명령문 세트에 대한 바인드 옵션을 생성합니다. Configure 유틸리티는 단일 세트의 특수 레지스터 값이 명령문 세트와 함께 기록된 경우 명령문 세트에 대한 바인드 옵션을 생성합니다. 한 명령문 세트에 대해 두 개 이상의 특수 레지스터 값 세트가 기록된 경우, Configure 유틸리티는 명령문 세트에 있는 SQL문과 함께 기록된 특수 레지스터 값 세트를 기반으로 하는 바인드 옵션이 들어 있는 주석을 작성합니다.

다음 예제 주석행은 특수 레지스터 값 세트를 기반으로 하는 바인드 옵션을 포함하고 있습니다. 주석은 읽기 쉽도록 여러 행으로 표시됩니다.
#  -bindOptions "QUALIFIER(SCHM13) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) 
       ROUNDING(HALFEVEN) DEC(15)" # WARNING: [specialRegValueId(3) UNTRACKED_SET]

주석에서 바인드 옵션은 pureQueryXML 파일 C:\myDir\capture.pdqxml에서 ID 3을 갖는 특수 레지스터 값 세트를 기반으로 합니다. 특수 레지스터 값 세트 3의 경우, pureQuery Runtime은 pureQuery가 추적하지만 해당 값이 기록되지 않는 특수 레지스터에 대한 변경사항을 발견했습니다.

Staticbinder 옵션 파일의 주석 토큰

pureQuery Configure 유틸리티가 작성하는 Staticbinder 옵션 파일에서 유틸리티는 바인드 옵션 다음에 주석을 추가합니다. 이 주석은 정보용 또는 경고 메시지를 표시하는 토큰을 포함합니다. 앞에 WARNING:이 표시되는 토큰은 명령문 세트에 있는 SQL문이 정적으로 실행될 때 올바른 작동을 할 수 없는 이유입니다. 앞에 INFO:가 표시되는 토큰은 정보용입니다.

명령문에 추가되는 주석이 isBindable(FALSE) 토큰을 포함할 때 INFO: 레이블만 사용됩니다. XLM 속성 isBindable의 값이 FALSE일 때 명령문 세트에 대해 토큰이 나열됩니다. 값이 FALSE인 경우, StaticBinder 유틸리티는 바인드 프로세스를 수행할 때 명령문 세트를 무시합니다. 명령문 세트가 바인드되지 않은 경우 경고는 필요하지 않습니다.

XML 속성 isBindable의 값이 명령문 세트에 대해 FALSE일 경우, Configure 유틸리티는 -bindOptions 및 -configureWarning 옵션을 생성하지 않습니다. 그러나 모든 토큰은 해당 명령문에 대한 주석에 표시됩니다.

isBindable 속성에 대한 정보는 pureQueryXML 파일에 있는 XML 속성 isBindable의 내용을 참조하십시오.

명령문 세트에 대한 주석 토큰

다음 토큰은 명령문 세트에 대한 정보를 제공합니다.

configureStatus(FINAL)
정보용 토큰입니다. pureQueryXML 파일에서 XML 속성 configureStatus의 값이 명령문 세트에 대해 FINAL입니다. Configure 유틸리티가 명령문 세트를 처리할 때 유틸리티는 명령문 세트에서 발견된 오류를 보고합니다. 유틸리티는 오류를 수정하지 않습니다.

Configure 유틸리티 옵션 -setPostStatusOfAllPkgs를 FINAL 값으로 지정할 경우, 모든 명령문 세트에 대해 토큰을 추가하지 않습니다. 입력 pureQueryXML 파일에 있는 명령문 세트에 대해 configureStatus 속성의 값이 FINAL일 때만 토큰이 주석으로 추가됩니다. -setPostStatusOfAllPkgs 옵션은 구성 후 모든 명령문 세트의 configureStatus 속성을 FINAL로 설정합니다.

pureQueryXML 파일을 변경할 때, 변경사항이 configureStatus 속성 값을 FINAL로 설정하는 명령문 세트에 영향을 주지 않는지 확인하십시오.

Configure 유틸리티가 명령문 세트에 대한 경고 토큰을 생성할 경우, 경고를 무시하거나 경고를 수정할 수 있습니다. 데이터베이스에 바인드한 기존 패키지를 보존하려는 경우 경고를 무시하십시오. 경고를 수정하려면 특정 경고 토큰에 대한 정보를 참조하십시오. 경고를 수정하려고 시도하면 일반적으로 명령문 세트를 구성해야 합니다. 명령문 세트를 구성한 후, StaticBinder 유틸리티를 사용하여 명령문 세트와 연관된 패키지를 리바인드한 다음에 명령문 세트에 있는 SQL문을 정적으로 실행할 수 있습니다.

incrementalSpecialRegValuesPresent
경고 토큰입니다. 명령문 세트 속성 configureStatus가 FINAL로 설정되고, 세트에 있는 하나 이상의 SQL문에서 명령문에 대한 XML 정보가 incrementalSpecialRegValuesUsed 속성을 포함합니다. incrementalSpecialRegValuesUsed 속성은 새 특수 레지스터 값 세트가 기록되었다는 것을 지정합니다. 그러나 SQL문이 특수 레지스터 설정에 따라 그룹화될 때 새 특수 레지스터 값 세트를 고려하지 않았습니다.

Configure 유틸리티는 또한 명령문 세트에 대한 바인드 옵션에 INCREMENTAL_SPECIAL_REGISTER_VALUES_PRESENT 값을 갖는 -configureWarning 옵션을 추가합니다.

토큰은 특수 레지스터 설정별로 그룹화된 명령문 세트에 대한 주석 또는 defaultOptions 행에 있는 주석에 표시될 수 있습니다.

명령문 세트에 대한 configureStatus가 FINAL로 설정되었을 때 유틸리티가 명령문 세트를 구성할 수 있도록 하려면 다음 방법 중 하나를 사용하십시오.
  • IBM® Data Studio에 있는 pureQueryXML 편집기를 사용하여 configureStatus 속성을 REQUIRED로 설정한 후 Configure 유틸리티를 실행하십시오.
  • Configure 유틸리티를 실행할 때 REQUIRED 또는 AUTO 값을 갖는 -setPreStatusOfAllPkgs 옵션을 추가하십시오. 이 옵션을 사용하면 pureQueryXML 파일에 있는 모든 명령문 세트에 영향을 줍니다. 기존 명령문 세트를 보존할 필요가 없는 경우에만 이 옵션을 사용하십시오.
  • Configure 유틸리티를 실행할 때 TRUE 값을 갖는 -cleanConfigure 옵션을 추가하십시오. 기존 명령문 세트를 보존할 필요가 있는 경우 이 옵션을 사용하지 마십시오.
주: configureStatus 속성의 값을 FINAL에서 다른 값으로 변경하려면 먼저 명령문 세트에 대한 새 패키지를 바인딩할 때 SQL문을 정적으로 실행하는 애플리케이션에 영향을 주지 않는지 확인하십시오. Configure 유틸리티가 명령문 세트를 변경하면 원래 명령문 세트에 대해 이미 작성된 패키지는 SQL문을 정적으로 실행하는 데 사용할 수 없습니다. 새 패키지를 바인드하려면 StaticBinder 유틸리티를 실행해야 합니다.

Configure 유틸리티를 실행할 때 새 옵션 파일을 생성하도록 -optionsFileForBind 옵션을 추가하십시오. 새 옵션 파일에 경고가 들어 있지 않은지 확인하십시오.

isBindable(FALSE)
정보용 토큰입니다. pureQueryXML 파일에서 XML 속성 isBindable에 대한 값이 명령문 세트에 대해 FALSE로 설정되어 있습니다 . StaticBinder 유틸리티가 명령문 세트에 대해 바인드 조작을 수행하지 않습니다.
positionedUpdateSpecialRegValueId
경고 토큰입니다. 명령문 세트가 위치 지정된 업데이트 명령문 및 연관된 SQL 쿼리를 포함하고 있습니다. 하나 이상의 위치 지정된 업데이트 명령문과 함께 기록된 특수 레지스터 값이 쿼리에 대한 특수 레지스터 설정과 다릅니다.

SQL문을 정적으로 실행할 때, DB2 데이터베이스의 경우 위치 지정된 업데이트 명령문이 연관된 쿼리 명령문과 동일한 패키지에 들어 있어야 합니다. 위치 지정된 업데이트 명령문이 연관된 쿼리에서 사용된 설정과 다른 특수 레지스터 설정을 사용하여 실행되어야 하는 경우, 두 SQL문 모두 동적으로 실행되어야 합니다.

명령문 세트에 대한 바인드 옵션을 지정하려면 다음 단계를 수행하십시오.
  1. 명령문 세트에 있는 SQL문을 정적으로 실행할 때 올바로 작동하는 바인드 옵션 세트를 작성하십시오.
  2. 그러한 바인드 옵션 세트가 되도록 옵션 파일에 있는 명령문 세트에 대한 바인드 옵션을 업데이트하십시오.

명령문 세트에 사용할 바인드 옵션 세트를 작성할 수 없는 경우, StaticBinder 유틸리티가 세트에 있는 SQL문을 바인드하지 않도록 지정할 수 있습니다. isBindable 속성의 값을 FALSE로 설정하십시오.

SQLGroupedBySpecialRegisters(warning)
경고 토큰입니다. Configure 유틸리티가 명령문 세트에 있는 SQL문과 함께 기록된 특수 레지스터 정보에 대한 문제점을 발견했습니다.
warning의 값은 다음 중 하나입니다.
  • INCONSISTENT_SRINFO
  • MULTI_SRINFO
  • NO_SRINFO
  • NOT_GROUPED
INCONSISTENT_SRINFO
명령문 세트에 있는 SQL문이 특수 레지스터에 따라 올바로 그룹화되지 않았습니다.

Configure 유틸리티는 또한 명령문 세트에 대한 바인드 옵션에 SPECIAL_REGISTER_GROUPING_INCONSISTENT 값을 갖는 -configureWarning 옵션을 추가합니다.

명령문 세트를 구성할 때, TRUE 값을 갖는 Configure 유틸리티 옵션 -groupSQLBySpecialRegisters를 지정하여 특수 레지스터 설정을 기준으로 SQL문을 그룹화할 수 있습니다. 새 옵션 파일을 생성하고 새로 생성된 옵션 파일이 더 이상 문제점을 보고하지 않는지 확인하려면 -optionsFileForBind 옵션을 지정하십시오. 다음 방법 중 하나를 사용하여 명령문 세트를 구성할 수 있습니다.
  • IBM Data Studio에 있는 pureQueryXML 편집기를 사용하여 구성 상태의 값을 REQUIRED로 변경한 후 Configure 유틸리티를 실행하십시오.
  • REQUIRED 값을 갖는 Configure 유틸리티 -setPreStatusOfAllPkgs 옵션을 지정하십시오. 이 옵션을 사용하면 pureQueryXML 파일에 있는 모든 명령문 세트에 영향을 줍니다.
  • TRUE 값을 갖는 Configure 유틸리티 -cleanConfigure 옵션을 지정하십시오. 기존 명령문 세트를 보존할 필요가 없는 경우에만 이 옵션을 사용하십시오.
이들 명령문 세트에 있는 명령문의 그룹화를 변경하지 않은 경우, 옵션 파일에 있는 정보를 사용하여 바인드 옵션 세트를 지정할 수 있습니다.
  1. 명령문 세트에 있는 SQL문을 정적으로 실행하기 위한 바인드 옵션 세트를 작성하십시오.
  2. 바인드 옵션 세트를 명령문 세트에 대한 행에 추가하십시오.
  3. 이 행에 있는 StaticBinder 옵션 -configureWarning에서 SPECIAL_REGISTER_GROUPING_INCONSISTENT 값을 제거하십시오. 다른 값이 지정되어 있지 않으면 이 옵션을 제거하십시오.

바인드 옵션 세트를 지정할 수 없는 경우, StaticBinder 유틸리티가 바인드 조작을 수행하지 않도록 지정할 수 있습니다. 명령문 세트에 대해 isBindable 속성의 값을 FALSE로 설정하십시오.

MULTI_SRINFO
명령문 세트에 있는 각 SQL문이 여러 번 캡처됩니다. 캡처될 때마다 다른 특수 레지스터 값이 기록됩니다. Configure 유틸리티는 옵션 파일에 있는 특수 레지스터 값 세트에 해당하는 바인드 옵션을 나열합니다.

Configure 유틸리티는 또한 명령문 세트에 대한 바인드 옵션에 MULTIPLE_SPECIAL_REGISTER_VALUE_SETS 값을 갖는 -configureWarning 옵션을 추가합니다.

Configure 유틸리티가 나열하는 바인드 옵션을 사용하여 다음 단계를 수행하십시오.
  1. 명령문 세트에 있는 SQL문을 정적으로 실행할 때 올바로 작동하는 바인드 옵션 세트를 작성하십시오.
  2. 바인드 옵션을 명령문 세트에 대한 엔트리에 추가하십시오.
  3. 엔트리에서 StaticBinder 옵션 -configureWarning에서 MULTIPLE_SPECIAL_REGISTER_VALUE_SETS 값을 제거하십시오. 다른 값이 지정되어 있지 않으면 이 옵션을 제거하십시오.

명령문 세트에 사용할 바인드 옵션 세트를 지정할 수 없는 경우, StaticBinder 유틸리티가 바인드 조작을 수행하지 않도록 지정할 수 있습니다. 명령문 세트에 대해 isBindable 속성의 값을 FALSE로 설정하십시오.

NO_SRINFO
명령문 세트에 있는 SQL문에 대해 특수 레지스터 정보가 기록되지 않았습니다.
다음 목록은 SQL문에 대해 특수 레지스터 정보가 기록되지 않은 이유를 설명합니다.
  • SQL문이 특수 레지스터 정보 기록을 지원하지 않는 pureQuery Runtime의 초기 버전을 사용하여 캡처되었습니다.

    명령문을 캡처하고 특수 레지스터 정보를 기록하려면 현재 버전의 pureQuery Runtime을 사용하여 애플리케이션을 다시 실행하십시오.

  • SQL문을 캡처하는 데 사용된 사용자 어카운트가 특수 레지스터 정보에 액세스하는 데 필요한 권한을 가지고 있지 않았습니다.

    특수 레지스터 정보를 기록하려면 특수 레지스터 정보에 액세스하는 데 필요한 권한을 가진 사용자를 지정하십시오.

  • GeneratePureQueryXml 유틸리티를 사용하여 SQL문을 pureQueryXML 파일에 추가했습니다.

명령문 세트에 있는 SQL문을 올바로 실행하기 위해 특수 레지스터 값이 필요한 경우, 옵션 파일의 명령문 세트에 대한 행에서 올바른 설정을 생성하는 바인드 옵션 세트를 지정하십시오.

올바른 바인드 옵션을 알고 있지 않은 경우, StaticBinder 유틸리티가 바인드 조작을 수행하지 않도록 지정할 수 있습니다. 명령문 세트에 대해 isBindable 속성의 값을 FALSE로 설정하십시오.

NOT_GROUPED
명령문 세트에 있는 SQL문이 특수 레지스터 설정으로 그룹화되지 않았습니다. 그러나 다른 명령문 세트에 있는 SQL문은 특수 레지스터 설정으로 그룹화되어 있습니다.
명령문 세트에 있는 SQL문을 올바로 실행하기 위해 특수 레지스터 값이 필요한 경우, 특수 레지스터 설정을 기준으로 SQL문을 그룹화하십시오. 다음 방법 중 하나를 사용하십시오.
  • IBM Data Studio에 있는 pureQueryXML 편집기를 사용하여 명령문 세트의 이름을 제거하십시오. 그런 다음 Configure 유틸리티를 다시 실행하고 -groupSQLBySpecialRegisters 옵션을 TRUE 값을 갖도록 지정하십시오.
  • Configure 유틸리티를 실행하고 -cleanConfigure 옵션과 -groupSQLBySpecialRegisters 옵션을 TRUE 값을 갖도록 지정하십시오. 기존 명령문 세트를 보존해야 하는 경우 -cleanConfigure 옵션을 사용하지 마십시오.

새 옵션 파일을 생성하고 파일에 더 이상 경고가 없는지 확인하려면 Configure 유틸리티 옵션 -optionsFileForBind를 지정하십시오.

SQLGroupedByStrings(strings)
정보용 토큰입니다. 명령문 세트에 있는 SQL문이 지정된 문자열을 기준으로 그룹화됩니다.

SQL문 그룹화에 대한 내용은 Configure 유틸리티 옵션 -groupSQLByStrings를 참조하십시오.

특수 레지스터 값 세트에 대한 주석 토큰

다음 토큰은 명령문 세트에 있는 명령문을 실행하는 데 사용된 특수 레지스터 값 세트에 대한 정보를 제공합니다. 이들 토큰은 주석에 표시될 때 대괄호 안에 표시되어 어떤 토큰이 특정 특수 레지스터 값 세트에 해당하는지를 나타냅니다.

다음 예제 주석은 특수 레지스터 값 세트에 대한 토큰을 포함하고 있습니다.
# WARNING: [specialRegValueId(10) minimumDivideScale(3)]
특수 레지스터 값 세트 ID는 10입니다. 이 특수 레지스터 값 세트에서 CURRENT PRECISION 특수 레지스터에 의해 지정된 최소 분할 스케일은 3입니다.

일부 데이터베이스에서는 바인드 옵션이 패키지에 대한 최소 분할 스케일 값을 설정할 수 없으므로 주석이 경고로 표시됩니다. pureQueryXML 파일에 있는 특수 레지스터 값 세트 정보에 대한 내용은 pureQueryXML 파일에 있는 특수 레지스터 정보의 내용을 참조하십시오.

minimumDivideScale(scale)
경고 토큰입니다. 연관된 특수 레지스터 값 세트에서 CURRENT PRECISION 특수 레지스터 값은 분할 조작에 대해 지정된 최소 분할 스케일을 포함합니다. CURRENT PRECISION 특수 레지스터 값의 형식은 Dpp.s입니다. 변수 pp는 정밀도이며 15 또는 31입니다. Configure 유틸리티는 정밀도를 지정하기 위해 바인드 옵션 DEC를 생성합니다. 변수 s는 선택적 최소 분할 스케일입니다. s의 값은 1과 9 사이의 정수입니다. s의 값은 minimumDivideScale(scale) 토큰에 대한 scale의 값입니다. 일부 데이터베이스에서는 바인드 옵션이 패키지에 대한 최소 분할 스케일 값을 설정할 수 없습니다.

토큰은 특수 레지스터 설정별로 그룹화된 명령문 세트에 대한 주석 또는 defaultOptions 행에 있는 주석에 표시될 수 있습니다.

명령문 세트에 있는 모든 명령문이 분할 함수에 대한 최소 분할 스케일을 데이터베이스의 디폴트 설정으로 설정하고 잘못 실행하는지 여부를 판별합니다.

SQL문이 정적으로 실행될 때 올바로 실행되지 않을 경우, StaticBinder 유틸리티가 세트에 있는 SQL문을 바인드하지 않도록 지정할 수 있습니다. isBindable 속성의 값을 FALSE로 설정하십시오.

missingSpecialRegValueId(IDs)
경고 토큰입니다. 명령문 세트에 있는 SQL문이 IDs 목록에 있는 특수 레지스터 값 세트와 연관되었습니다. 그러나 특수 레지스터 값 세트가 pureQueryXML 파일에 정의되어 있지 않습니다.

토큰은 특수 레지스터 설정별로 그룹화된 명령문 세트에 대한 주석 또는 defaultOptions 행에 있는 주석에 표시될 수 있습니다.

Configure 유틸리티는 또한 명령문 세트에 대한 바인드 옵션에 SPECIAL_REGISTER_VALUE_SET_MISSING 값을 갖는 -configureWarning 옵션을 추가합니다.

이 경고가 표시되는 한 가지 이유는 특수 레지스터 값 세트에 대한 정의가 파일에서 삭제되었기 때문입니다.

다음 방법 중 하나로 특수 레지스터 값 세트에 대한 정의를 복구할 수 있습니다.
  • 수동으로 파일을 편집하고 특수 레지스터 값 세트 정의를 제거한 경우, 정의를 제거한 변경사항을 되돌리십시오.
  • 명령문 세트를 제거하고 세트에 있는 SQL문을 다시 캡처하십시오.

정의를 복구할 수 없는 경우 SQL문이 정적으로 실행될 때 올바른 작동을 할 수 없습니다. StaticBinder 유틸리티가 세트에 있는 SQL문을 바인드하지 않도록 지정할 수 있습니다. 세트에 사용할 isBindable 속성의 값을 FALSE로 설정하십시오.

specialRegValueId(IDs)
정보용 토큰입니다. 명령문 세트에 있는 SQL문에 대해 pureQuery Runtime이 ID별로 나열된 특수 레지스터 값 세트를 기록했습니다. IDs의 값은 하나 이상의 특수 레지스터 ID가 될 수 있습니다. 두 개 이상의 특수 레지스터 값 세트가 명령문 세트와 연관될 경우, Configure 유틸리티는 각 ID를 쉼표로 구분합니다.

토큰은 특수 레지스터 설정별로 그룹화된 명령문 세트에 대한 주석 또는 defaultOptions 행에 있는 주석에 표시될 수 있습니다.

특수 레지스터 ID는 다음 형식 중 하나를 가질 수 있습니다.
  • 특수 레지스터 값 세트의 ID를 지정하는 단일 정수.
  • pureQueryXmlFilePath:ID, 콜론으로 구분된 파일 이름과 정수.

    토큰이 defaultOptions 엔트리에 나열되는 경우, Configure 유틸리티는 ID 앞에 pureQueryXML 파일 이름을 추가합니다. 파일에는 지정된 특수 레지스터 값 세트가 포함됩니다.

specialRegValueId(NONE)
경고 토큰입니다. 명령문 세트에 특수 레지스터 정보와 연관된 SQL문과 특수 레지스터 정보와 연관되지 않은 SQL문이 포함되어 있습니다.

토큰은 특수 레지스터 설정별로 그룹화된 명령문 세트에 대한 주석 또는 defaultOptions 행에 있는 주석에 표시될 수 있습니다.

이 토큰은 SQLGroupedBySpecialRegisters(INCONSISTENT_SRINFO) 토큰이 존재할 때만 표시됩니다. SQL문을 다른 명령문 세트로 그룹화하는 데 대한 정보는 SQLGroupedBySpecialRegisters(INCONSISTENT_SRINFO)에 대한 정보를 참조하십시오.

이 명령문 세트에 있는 SQL문을 특수 레지스터 설정을 기준으로 그룹화할 경우, 일부 명령문이 SQLGroupedBySpecialRegisters(NO_SRINFO) 토큰과 함께 세트에 포함됩니다.

SQLID(sqlid)
경고 토큰입니다. sqlid의 값은 연관된 특수 레지스터 값 세트에 있는 CURRENT SQLID 특수 레지스터의 값입니다. CURRENT SQLID 특수 레지스터의 값이 CURRENT SCHEMA 특수 레지스터의 값과 일치할 때 이 토큰은 포함되지 않습니다.

토큰은 특수 레지스터 설정별로 그룹화된 명령문 세트에 대한 주석 또는 defaultOptions 행에 있는 주석에 표시될 수 있습니다.

명령문 세트에 대해 바인드 옵션을 사용하기 전에 다음 단계를 수행하여 올바른 옵션을 사용하고 있는지 확인하십시오.
  1. CURRENT SQLID 값이 명령문 세트에 있는 SQL문을 올바로 실행하는 데 필요한지 판별하십시오.
  2. 명령문 세트에 있는 SQL문을 정적으로 실행할 때 올바로 작동하는 바인드 옵션 세트를 작성하십시오.

    어떤 경우에는 OWNER 바인드 옵션을 사용하여 CURRENT SQLID 특수 레지스터에 의해 얻어지는 것과 동일한 효과를 얻을 수도 있습니다.

  3. 필요하면 그러한 바인드 옵션 세트가 되도록 옵션 파일에 있는 명령문 세트에 대한 엔트리를 업데이트하십시오.

명령문 세트에 사용할 바인드 옵션 세트를 작성할 수 없는 경우, StaticBinder 유틸리티가 세트에 있는 SQL문을 바인드하지 않도록 지정할 수 있습니다. 세트에 사용할 isBindable 속성의 값을 FALSE로 설정하십시오.

unrecognizedSpecialRegisters(specialRegisters)
경고 토큰입니다. 하나 이상의 특수 레지스터 세트가 Configure 유틸리티가 인식하지 않은 특수 레지스터를 하나 이상 포함했습니다.

토큰은 특수 레지스터 설정별로 그룹화된 명령문 세트에 대한 주석 또는 defaultOptions 행에 있는 주석에 표시될 수 있습니다.

specialRegisters 값은 하나 이상의 키워드가 될 수 있습니다. 둘 이상의 키워드가 인식되지 않는 경우, Configure 유틸리트는 각 키워드를 쉼표로 구분합니다.

pureQueryXML 파일에 있는 SQL문이 Configure 유틸리티 버전 보다 이전 버전인 pureQuery Runtime을 통해 캡처된 경우 인식되지 않는 특수 레지스터가 기록될 수 있습니다. 파일에 있는 특수 레지스터 정보가 수동으로 잘못 편집될 때 인식되지 않는 특수 레지스터가 작성될 수 있습니다.

이 토큰이 표시될 경우, pureQueryXML 파일의 SQL문을 캡처하는 Configure 유틸리티 버전보다 이후 버전 또는 같은 릴리스의 유틸리티를 사용하십시오. pureQueryXML 파일을 수동으로 잘못 편집한 경우, 편집을 되돌려야 합니다.

UNTRACKED_SET
경고 토큰입니다. 애플리케이션이 pureQuery 클라이언트 최적화가 기록하지 않은 특수 레지스터에 대한 SQL SET문을 실행한 후, 연관된 특수 레지스터 값 세트를 사용하여 SQL문이 실행되었습니다.

토큰은 특수 레지스터 설정별로 그룹화된 명령문 세트에 대한 주석 또는 defaultOptions 행에 있는 주석에 표시될 수 있습니다.

명령문 세트에 대해 바인드 옵션을 사용하기 전에 다음 단계를 수행하여 올바른 옵션을 사용하고 있는지 확인하십시오.
  1. pureQuery Runtime이 추적하지 않으며 안전하지 않은 것으로 간주하는 특수 레지스터에 대해 실행된 SQL SET문을 식별하기 위해 캡처된 모든 pureQueryXL 파일과 애플리케이션을 참조하십시오. SQL문이 캡처될 때 기록되는 특수 레지스터 정보에 대한 내용은 pureQuery 클라이언트 최적화에 의한 DB2 특수 레지스터 변경사항 추적을 참조하십시오.
  2. 명령문 세트에 있는 SQL SET문이 명령문 세트에 있는 SQL문을 올바로 실행하는 데 필요한지 판별하십시오.
  3. 명령문 세트에 있는 SQL문을 정적으로 실행할 때 올바로 작동하는 바인드 옵션 세트를 작성하십시오.
  4. 필요한 경우, 그러한 바인드 옵션 세트가 되도록 옵션 파일에 있는 명령문 세트에 대한 엔트리를 업데이트하십시오.

명령문 세트에 사용할 바인드 옵션 세트를 작성할 수 없는 경우, StaticBinder 유틸리티가 세트에 있는 SQL문을 바인드하지 않도록 지정할 수 있습니다. 세트에 사용할 isBindable 속성의 값을 FALSE로 설정하십시오.


피드백