다음을 통해 공유


오류 및 경고 처리(XMLA)

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

오류 보고
XMLA 메서드 호출이 실행되지 않음 Microsoft SQL Server Analysis Services는 오류 세부 정보가 포함된 SOAP 오류 메시지를 반환합니다.

자세한 내용은 SOAP 오류 처리 섹션을 참조하세요.
성공적인 메서드 호출에 대한 오류 또는 경고 Analysis Services에는 메서드 호출 결과를 포함하는 루트 요소의 Messages 속성에 각 오류 또는 경고에 대한 오류 또는 경고 요소가 각각 포함됩니다.

자세한 내용은 오류 및 경고 처리 섹션을 참조하세요.
메서드 호출 성공에 대한 결과의 오류 Analysis Services는 각각 메서드 호출 결과의 적절한 Cell 또는 warning 요소 내에 오류 또는 경고에 대한 인라인 error 또는 요소를 포함합니다.

자세한 내용은 인라인 오류 및 경고 처리 섹션을 참조하세요.

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)를 참조하세요.

Serialization 중 오류 처리

Analysis Services 인스턴스가 성공적으로 실행된 명령의 출력을 직렬화하기 시작한 후에 오류가 발생하면 Analysis Services는 오류 시점에 다른 네임스페이스의 Exception 요소를 반환합니다. 그런 다음 Analysis Services 인스턴스는 열려 있는 모든 요소를 닫아 클라이언트에 전송된 XML 문서가 유효한 문서입니다. 또한 인스턴스는 오류에 대한 Messages 설명을 포함하는 요소를 반환합니다.

인라인 오류 및 경고 처리

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

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

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

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

또한 참조하십시오

Analysis Services에서 XMLA를 사용하여 개발