Compartilhar via


Manipulando erros e avisos (XMLA)

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

Erro Relatórios
A chamada de método XMLA não é executada O Microsoft SQL Server 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 com êxito SQL Server 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 com êxito SQL Server Analysis Services inclui um erro embutido ou um elemento de aviso 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

SQL Server 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 de SQL Server Analysis Services.

  • Houve um erro de 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 de SQL Server Analysis Services.

Os códigos de falha SOAP para XMLstartA começam com "XMLForAnalysis", seguido por um ponto e o código de resultado hexadecimal HRESULT. Por exemplo, um código de erro "0x80000005" é formatado como "XMLForAnalysis.0x80000005". Para obter mais informações sobre o formato de falha SOAP, consulte Falha Soap no protocolo SOAP 1.1 do W3C.

Informações de código de falha

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

Nome da coluna Type Descrição Nulo permitido1
ErrorCode UnsignedInt Código de retorno que indica o êxito ou a falha do método. O valor hexadecimal deve ser convertido em um valor UnsignedInt . Não
Warningcode UnsignedInt Código de retorno que indica uma condição de aviso. O valor hexadecimal deve ser convertido em um valor UnsignedInt . Sim
Descrição Cadeia de caracteres Texto e descrição de erro ou de aviso retornadas pelo componente que gerou o erro. Sim
Origem Cadeia de caracteres Nome do componente que gerou o erro ou o aviso. Sim
Helpfile Cadeia de caracteres Caminho ou URL para o arquivo de Ajuda ou tópico 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.

A seguir, um exemplo de uma falha SOAP ocorrida quando uma chamada de método falhou:

<?xml version="1.0"?>  
   <SOAP-ENV:Envelope  
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  
   SOAP-ENV:encodingStyle="http://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

SQL Server Analysis Services retorna a propriedade Messages no elemento raiz de 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 SQL Server Analysis Services depois que a chamada de método foi bem-sucedida.

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

A propriedade Messages segue todas as outras propriedades contidas pelo elemento raiz e pode conter um ou mais elementos message . Por sua vez, cada elemento Message pode conter um único erro ou elemento de aviso descrevendo quaisquer erros ou avisos, respectivamente, que ocorreram para o comando especificado.

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

Manipulando erros durante a serialização

Se ocorrer um erro depois que a instância de SQL Server Analysis Services já tiver começado a serializar a saída de um comando de execução com êxito, SQL Server Analysis Services retornará um elemento Exception em um namespace diferente no ponto do erro. A instância SQL Server 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 elemento Messages que contém a descrição do erro.

Manipulando erros e avisos embutidos

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

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

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

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

Consulte Também

Desenvolvendo com XMLA no Analysis Services