Compartilhar via


Tratamento de erros e avisos (XMLA)

O tratamento de erros é necessário quando uma chamada do método XML for Analysis (XMLA) não é executada, é executada com êxito, mas gera erros ou avisos ou é executada com êxito, mas retorna resultados que contêm erros.

Erro Reportagem
A chamada do método XMLA não é executada O Microsoft SQL Server Analysis Services retorna uma mensagem de falha SOAP que contém os detalhes da falha.

Para obter mais informações, consulte a seção Manipulando falhas SOAP.
Erros ou avisos em uma chamada de método bem-sucedida O Analysis Services inclui um elemento de erro ou aviso para cada erro ou aviso, respectivamente, na propriedade Messages do elemento raiz que contém os resultados da chamada de método.

Para obter mais informações, consulte a seção, Manipulando erros e avisos.
Erros no resultado de uma chamada de método bem-sucedida O Analysis Services inclui um error elemento embutido warning para o erro ou aviso, respectivamente, dentro do elemento de linha ou célula apropriado dos resultados da chamada de método.

Para obter mais informações, consulte a seção Manipulando erros e avisos embutidos.

Manipulando falhas soap

O Analysis Services retorna uma falha SOAP quando ocorrem as seguintes situações:

  • A mensagem SOAP que contém o método XMLA não foi bem formada ou não pôde ser validada pela instância do Analysis Services.

  • Ocorreu uma comunicação ou outro erro envolvendo a mensagem SOAP que contém o método XMLA.

  • O método XMLA não foi executado na instância do Analysis Services.

Os códigos de falha SOAP para XMLstartA começam com "XMLForAnalysis", seguidos por um período e o código de resultado hexadecimal HRESULT. Por exemplo, um código de erro de "0x80000005" é formatado como "XMLForAnalysis.0x80000005". Para obter mais informações sobre o formato de falha SOAP, consulte Soap Fault in the W3C Simple Object Access Protocol (SOAP) 1.1.

Informações sobre código de falha

A tabela a seguir mostra as informações de código de falha XMLA contidas na seção de detalhes da resposta SOAP. As colunas são os atributos de um erro na seção de detalhes de uma falha SOAP.

Nome da coluna Tipo Descrição Nulo permitido1
ErrorCode UnsignedInt Retornar código que indica o êxito ou a falha do método. O valor hexadecimal deve ser convertido em um UnsignedInt valor. Não
WarningCode UnsignedInt Código de retorno que indica uma condição de aviso. O valor hexadecimal deve ser convertido em um UnsignedInt valor. Sim
Description String Erro ou texto de aviso e descrição retornados pelo componente que gerou o erro. Sim
Source String Nome do componente que gerou o erro ou aviso. Sim
HelpFile String Caminho ou URL para o arquivo ou tópico da Ajuda que descreve o erro ou o aviso. Sim

1 Indica se os dados são necessários e devem ser retornados ou se os dados são opcionais e uma cadeia de caracteres nula é permitida se a coluna não se aplica.

Veja a seguir um exemplo de uma falha SOAP que ocorreu quando uma chamada de método falhou:

<?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>  

Manipulando erros e avisos

O Analysis Services retorna a Messages propriedade no root elemento para um comando se as seguintes situações ocorrerem após a execução desse comando:

  • O método em si não falhou, mas ocorreu uma falha na instância do Analysis Services depois que a chamada do método foi bem-sucedida.

  • A instância do Analysis Services retorna um aviso quando o comando é bem-sucedido.

A Messages propriedade segue todas as outras propriedades contidas pelo root elemento e pode conter um ou mais Message elementos. Por sua vez, cada Message elemento pode conter um único error ou warning elemento que descreve quaisquer erros ou avisos, respectivamente, que ocorreram para o comando especificado.

Para obter mais informações sobre erros e avisos contidos na propriedade, consulte o MessagesElemento Messages (XMLA).

Manipulando erros durante a serialização

Se ocorrer um erro depois que a instância do Analysis Services já tiver começado a serializar a saída de um comando executado com êxito, o Analysis Services retornará um elemento Exception em um namespace diferente no ponto do erro. Em seguida, a instância do Analysis Services fecha todos os elementos abertos para que o documento XML enviado ao cliente seja um documento válido. A instância também retorna um Messages elemento que contém a descrição do erro.

Tratamento de erros embutidos e avisos

O Analysis Services retornará um comando embutido error ou warning para um comando se o próprio método XMLA não falhar, mas um erro específico a um elemento de dados nos resultados retornados pelo método ocorreu na instância do Analysis Services após a chamada do método XMLA ter sido bem-sucedida.

O Analysis Services fornece elementos embutidos error se warning ocorrerem problemas específicos a uma célula ou a outros dados contidos em um root elemento usando o tipo de dados MDDataSet , como erro de segurança ou erro de formatação para uma célula. Nesses casos, o Analysis Services retorna um error elemento ou warning elemento no Cell elemento ou row que contém o erro ou aviso, respectivamente.

O exemplo a seguir ilustra um conjunto de resultados que contém um erro no conjunto de linhas retornado de um Execute método usando o comando Statement .

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

Consulte Também

Desenvolvimento com XMLA em Analysis Services