Freigeben über


Behandeln von Fehlern und Warnungen (XMLA)

Eine Fehlerbehandlung ist notwendig, wenn ein XMLA-Aufruf (XML for Analysis) der Methoden Discover oder Execute nicht ausgeführt wird, erfolgreich ausgeführt wird, aber Fehler oder Warnungen generiert oder erfolgreich ausgeführt wird, aber fehlerhafte Ergebnisse zurückgibt.

Fehler Berichterstellung
Der XMLA-Methodenaufruf wird nicht ausgeführt Microsoft SQL Server Analysis Services gibt eine SOAP-Fehlermeldung zurück, die die Details des Fehlers enthält.

Weitere Informationen finden Sie im Abschnitt Behandeln von SOAP-Fehlern.
Fehler oder Warnungen bei erfolgreichem Methodenaufruf Analysis Services enthält ein Fehler - oder Warnungselement für jeden Fehler bzw. jede Warnung in der Messages-Eigenschaft des Stammelements , das die Ergebnisse des Methodenaufrufs enthält.

Weitere Informationen finden Sie im Abschnitt Behandeln von Fehlern und Warnungen.
Fehler im Ergebnis bei erfolgreichem Methodenaufruf Analysis Services enthält ein Inline error - oder warning -Element für den Fehler bzw. die Warnung innerhalb des entsprechenden Cell- oder Zeilenelements der Ergebnisse des Methodenaufrufs.

Weitere Informationen finden Sie im Abschnitt Behandeln von Inlinefehlern und -warnungen.

Behandeln von SOAP-Fehlern

Analysis Services gibt einen SOAP-Fehler zurück, wenn die folgenden Situationen auftreten:

  • Die SOAP-Nachricht, die die XMLA-Methode enthält, war nicht wohlgeformt oder konnte vom Analysis Services-instance nicht überprüft werden.

  • Eine Kommunikations- oder anderer Fehler ist in Bezug auf die SOAP-Nachricht, die die XMLA-Methode enthält, aufgetreten.

  • Die XMLA-Methode wurde nicht auf dem Analysis Services-instance ausgeführt.

Die SOAP-Fehlercodes für XMLstartA beginnen mit „XMLForAnalysis“ gefolgt von einem Punkt und dem hexadezimalen HRESULT-Ergebniscode. Beispielsweise wird ein Fehlercode von „0x80000005“ formatiert als „XMLForAnalysis.0x80000005“. Weitere Informationen über das SOAP-Fehlerformat finden Sie unter „Soap Fault in the W3C Simple Object Access Protocol (SOAP) 1.1“.

Fehlercodeinformationen

Die folgende Tabelle zeigt die XMLA-Fehlercodeinformationen, die im Detailabschnitt der SOAP-Antwort enthalten sind. Die Spalten sind die Attribute eines Fehlers im Detailabschnitt eines SOAP-Fehlers.

Spaltenname type BESCHREIBUNG Null zulässig1
ErrorCode UnsignedInt Rückgabecode, der den Erfolg oder das Scheitern der Methode angibt. Der Hexadezimalwert muss in einen UnsignedInt-Wert konvertiert werden. Nein
WarningCode UnsignedInt Rückgabecode, der eine Warnbedingung angibt. Der Hexadezimalwert muss in einen UnsignedInt-Wert konvertiert werden. Ja
Description String Fehler- oder Warnungstext und Beschreibung, die durch die Komponente zurückgegeben werden, die den Fehler erzeugt hat. Ja
Source String Name der Komponente, die den Fehler oder die Warnung generiert hat. Ja
HelpFile String Pfad oder URL zur Hilfedatei oder dem Thema, das den Fehler oder die Warnung beschreibt. Ja

1 Gibt an, ob die Daten erforderlich sind und zurückgegeben werden müssen, oder ob die Daten optional sind und eine NULL-Zeichenfolge zulässig ist, wenn die Spalte nicht zutrifft.

Im Folgenden finden Sie ein Beispiel für einen SOAP-Fehler, der auftrat, als ein Methodenaufruf fehlschlug:

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

Behandeln von Fehlern und Warnungen

Analysis Services gibt die Messages -Eigenschaft im root -Element für einen Befehl zurück, wenn die folgenden Situationen nach der Ausführung dieses Befehls auftreten:

  • Die Methode selbst ist nicht fehlgeschlagen, aber es ist ein Fehler auf der Analysis Services-instance aufgetreten, nachdem der Methodenaufruf erfolgreich war.

  • Die Analysis Services-instance gibt eine Warnung zurück, wenn der Befehl erfolgreich ist.

Die Messages-Eigenschaft folgt allen Eigenschaften, die im root-Element enthalten sind, und kann ein oder mehr Message-Elemente enthalten. Jedes Message-Element kann entweder ein einzelnes error- oder ein warning-Element enthalten, das entweder Fehler oder Warnungen beschreibt, die beim angegebenen Befehl aufgetreten sind.

Weitere Informationen zu Fehlern und Warnungen, die in der Messages -Eigenschaft enthalten sind, finden Sie unter Messages-Element (XMLA).

Behandeln von Fehlern während der Serialisierung

Wenn ein Fehler auftritt, nachdem die Analysis Services-instance bereits mit der Serialisierung der Ausgabe eines erfolgreich ausgeführten Befehls begonnen hat, gibt Analysis Services zum Zeitpunkt des Fehlers ein Exception-Element in einem anderen Namespace zurück. Die Analysis Services-instance schließt dann alle geöffneten Elemente, sodass das an den Client gesendete XML-Dokument ein gültiges Dokument ist. Die Instanz gibt darüber hinaus ein Messages-Element zurück, das eine Beschreibung des Fehlers enthält.

Behandeln von Inlinefehlern und -warnungen

Analysis Services gibt eine Inline error oder warning für einen Befehl zurück, wenn die XMLA-Methode selbst nicht fehlschlägt, sondern einen Fehler, der für ein Datenelement in den von der Methode zurückgegebenen Ergebnissen spezifisch ist, die auf dem Analysis Services-instance aufgetreten ist, nachdem der XMLA-Methodenaufruf erfolgreich war.

Analysis Services stellt Inline error - und warning -Elemente bereit, wenn spezifische Probleme für eine Zelle oder andere Daten auftreten, die in einem root Element mit dem MDDataSet-Datentyp enthalten sind, z. B. ein Sicherheitsfehler oder formatierungsfehler für eine Zelle. In diesen Fällen gibt Analysis Services ein error - oder warning -Element im Cell - oder row -Element zurück, das den Fehler bzw. die Warnung enthält.

Das folgende Beispiel veranschaulicht ein Resultset, das einen Fehler im Rowset enthält, der von einer Execute Methode mit dem Befehl Statement zurückgegeben wird.

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

Weitere Informationen

Entwickeln mit XMLA in Analysis Services