Manipulando erros e avisos (XMLA)
O tratamento de erros é necessário quando uma chamada de método XMLA (XML for Analysis) Discover ou 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 Analysis Services retorna uma mensagem de falha SOAP que contém os detalhes da falha. Para obter mais informações, consulte a seção Tratamento de falhas SOAP. |
Erros ou avisos em uma chamada de método com êxito | 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 Tratamento de erros e avisos. |
Erros no resultado de uma chamada de método com êxito | O Analysis Services inclui um elemento embutido error warning para o erro ou aviso, respectivamente, dentro do elemento Cell ou row apropriado dos resultados da chamada de método.Para obter mais informações, consulte a seção Tratamento de 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.
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 do 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 para um valor UnsignedInt . |
No |
WarningCode |
UnsignedInt |
Código de retorno que indica uma condição de aviso. O valor hexadecimal deve ser convertido para um valor UnsignedInt . |
Sim |
Description |
String |
Texto e descrição de erro ou de aviso retornadas pelo componente que gerou o erro. | Sim |
Source |
String |
Nome do componente que gerou o erro ou o aviso. | Sim |
HelpFile |
String |
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="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 retornará 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 de método foi bem-sucedida.
A instância do Analysis Services retorna um aviso quando o comando é bem-sucedido.
A propriedade Messages
segue todas as outras propriedades contidas pelo elemento root
e pode conter um ou mais elementos Message
. Por sua vez, cada elemento Message
pode conter um único elemento error
ou warning
descrevendo erros ou avisos, respectivamente, ocorridos para o comando especificado.
Para obter mais informações sobre erros e avisos contidos na Messages
propriedade , consulte Elemento 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 retornará um elemento Messages
com a descrição do erro.
Manipulando erros e avisos embutidos
O Analysis Services retornará um error
embutido 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 fornecerá elementos embutidos error
e warning
se ocorrerem problemas específicos a uma célula ou a outros dados contidos em um root
elemento usando o tipo de dados MDDataSet , como um erro de segurança ou erro de formatação para uma célula. Nesses casos, o Analysis Services retorna um error
elemento ou warning
no Cell
elemento 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 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>