오류 및 경고 처리(XMLA)

XMLA(XML for Analysis) Discover 또는 Execute 메서드 호출이 실행되지 않거나, 성공적으로 실행되었으나 오류 또는 경고가 발생하거나, 성공적으로 실행되었으나 반환된 결과에 오류가 포함된 경우 오류 해결이 필요합니다.

오류

보고

XMLA 메서드 호출이 실행되지 않음

MicrosoftSQL ServerAnalysis Services에서 자세한 오류 정보가 포함된 SOAP 오류 메시지를 반환합니다.

자세한 내용은 SOAP 오류 해결 섹션을 참조하십시오.

메서드 호출이 성공적으로 실행되었으나 오류 또는 경고 발생

Analysis Services에서 메서드 호출 결과가 들어 있는 root 요소의 Messages 속성에 각 오류 또는 경고에 대한 error 또는 warning 요소가 있습니다.

자세한 내용은 오류 및 경고 해결 섹션을 참조하십시오.

메서드 호출이 성공적으로 실행되었으나 결과에 오류가 있음

Analysis Services에서 메서드 호출 결과의 해당 Cell 또는 row 요소에 각 오류 또는 경고에 대한 인라인 error 또는 warning 요소가 있습니다.

자세한 내용은 인라인 오류 및 경고 해결 섹션을 참조하십시오.

SOAP 오류 해결

Analysis Services에서 SOAP 오류가 반환되는 경우는 다음과 같습니다.

  • XMLA 메서드가 포함된 SOAP 메시지가 올바른 형식이 아니거나 Analysis Services 인스턴스에서 해당 메시지의 유효성을 확인할 수 없는 경우

  • XMLA 메서드가 포함된 SOAP 메시지와 관련된 통신 또는 기타 오류가 발생한 경우

  • XMLA 메서드가 Analysis Services 인스턴스에서 실행되지 않은 경우

XMLstartA에 대한 SOAP 오류 코드는 "XMLForAnalysis"로 시작하며 그 뒤에 마침표와 16진수 HRESULT 결과 코드가 붙습니다. 예를 들어 오류 코드 "0x80000005"는 "XMLForAnalysis.0x80000005"가 됩니다. SOAP 오류 형식에 대한 자세한 내용은 W3C SOAP(Simple Object Access Protocol) 1.1에서 Soap Fault를 참조하십시오.

오류 코드 정보

다음 표에서는 SOAP 응답의 세부 정보 섹션에 포함된 XMLA 오류 코드 정보를 보여 줍니다. 열은 SOAP 오류의 세부 정보 섹션에 포함된 오류의 특성을 나타냅니다.

열 이름

유형

설명

NULL 허용 여부1

ErrorCode

UnsignedInt

메서드의 성공 또는 실패를 나타내는 코드를 반환합니다. 16진수 값은 UnsignedInt 값으로 변환되어야 합니다.

아니요

WarningCode

UnsignedInt

경고 조건을 나타내는 코드를 반환합니다. 16진수 값은 UnsignedInt 값으로 변환되어야 합니다.

Description

String

오류가 발생한 구성 요소에서 반환한 오류 또는 경고에 대한 텍스트와 설명입니다.

Source

String

오류 또는 경고가 발생한 구성 요소의 이름입니다.

HelpFile

String

오류 또는 경고를 설명하는 도움말 파일 또는 항목의 경로 또는 URL입니다.

1 반드시 반환해야 하는 필수 데이터인지 또는 선택적 데이터로서 해당되지 않는 열일 경우 Null 문자열이 허용되는지 여부를 나타냅니다.

다음은 메서드 호출이 실패했을 때 발생하는 SOAP 오류 예입니다.

<?xml version="1.0"?>
   <SOAP-ENV:Envelope
   xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
   SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding/">
      <SOAP-ENV:Fault>
         <faultcode>XMLAnalysisError.0x80000005</faultcode>
         <faultstring>The XML for Analysis provider encountered an error.</faultstring>
         <faultactor>XML for Analysis Provider</faultactor>
         <detail>
<Error
ErrorCode="2147483653"
Description="An unexpected error has occurred."
Source="XML for Analysis Provider"
HelpFile="" />
         </detail>
      </SOAP-ENV:Fault>
</SOAP-ENV:Envelope>

오류 및 경고 해결

Analysis Services에서는 명령 실행 후 다음과 같은 상황이 발생할 경우 명령에 대한 root 요소에 Messages 속성을 반환합니다.

  • 메서드 자체는 실패하지 않았지만 메서드가 성공적으로 호출된 후 Analysis Services 인스턴스에서 오류가 발생한 경우

  • 명령을 성공적으로 실행했지만 Analysis Services 인스턴스에서 경고를 반환한 경우

Messages 속성은 root 요소에 포함된 속성 중 마지막 속성이며 Message 요소를 한 개 이상 포함할 수 있습니다. 또한 각 Message 요소는 지정된 명령에 대해 발생한 오류나 경고를 설명하는 단일 error 또는 warning 요소를 포함할 수 있습니다.

Messages 속성에 포함된 오류 및 경고에 대한 자세한 내용은 Messages 요소(XMLA)를 참조하십시오.

직렬화 중 오류 해결

성공적으로 실행된 명령의 출력에 대한 직렬화가 이미 Analysis Services 인스턴스에서 시작된 후에 오류가 발생한 경우 Analysis Services에서는 오류가 발생한 시점에 다른 네임스페이스에 있는 Exception 요소를 반환합니다. 그러면 Analysis Services 인스턴스는 클라이언트에 보낸 XML 문서가 유효한 문서가 되도록 열려 있는 요소를 모두 닫습니다. 또한 오류에 대한 설명이 들어 있는 Messages 요소도 반환합니다.

인라인 오류 및 경고 해결

XMLA 메서드 자체는 실패하지 않았지만 XMLA 메서드가 성공적으로 호출된 후 반환된 결과의 데이터 요소와 관련된 오류가 Analysis Services 인스턴스에서 발생하면 Analysis Services에서는 명령에 대한 인라인 error 또는 warning을 반환합니다.

Analysis Services는 MDDataSet 데이터 형식을 사용하는 root 요소 내에 포함된 다른 데이터 또는 셀과 관련된 문제(예: 보안 오류 또는 셀 형식 지정 오류)가 발생할 경우 인라인 error 및 warning 요소를 제공합니다. 이러한 경우 Analysis Services는 오류 또는 경고가 포함된 Cell 또는 row 요소에 error 또는 warning 요소를 반환합니다.

다음 예에서는 Statement 명령을 사용하는 Execute 메서드에서 반환된 행 집합에 오류가 포함된 결과 집합을 보여 줍니다.

<return>
   ...
   <root>
      ...
      <CellData>
      ...
         <Cell CellOrdinal="10">
            <Value>
               <Error>
                  <ErrorCode>2148497527</ErrorCode> 
                  <Description>Security Error.</Description> 
               </Error>
            </Value>
         </Cell>
      </CellData>
      ...
   </root>
   ...
</return>