Freigeben über


Umgang mit Fehlern und Warnungen (XMLA)

Fehlerbehandlung ist erforderlich, wenn ein XML für Analysis (XMLA) Discover - oder Execute-Methodenaufruf nicht ausgeführt, erfolgreich ausgeführt wird, aber Fehler oder Warnungen generiert oder erfolgreich ausgeführt wird, sondern Ergebnisse zurückgibt, die Fehler enthalten.

Fehler Berichterstattung
Der XMLA-Methodenaufruf wird nicht ausgeführt. Microsoft SQL Server 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 einem erfolgreichen Methodenaufruf SQL Server Analysis Services enthält ein Fehler - oder Warnelement für jeden Fehler bzw. jede Warnung in der Eigenschaft "Messages " des Stammelements , das die Ergebnisse des Methodenaufrufs enthält.

Weitere Informationen finden Sie im Abschnitt " Behandeln von Fehlern und Warnungen".
Fehler im Ergebnis für einen erfolgreichen Methodenaufruf SQL Server Analysis Services enthält ein Inlinefehler - oder Warnelement für den Fehler bzw. die Warnung innerhalb des entsprechenden Cell - oder Row-Elements der Ergebnisse des Methodenaufrufs.

Weitere Informationen finden Sie im Abschnitt " Behandeln von Inlinefehlern und Warnungen".

Behandeln von SOAP-Fehlern

SQL Server 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 von der SQL Server Analysis Services-Instanz nicht überprüft werden.

  • Es ist eine Kommunikation oder ein anderer Fehler aufgetreten, der die SOAP-Nachricht enthält, die die XMLA-Methode enthält.

  • Die XMLA-Methode wurde nicht für die SQL Server Analysis Services-Instanz 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" als "XMLForAnalysis.0x80000005" formatiert. Weitere Informationen zum SOAP-Fehlerformat finden Sie unter Soap Fault in the W3C Simple Object Access Protocol (SOAP) 1.1.

Fehlercodeinformationen

In der folgenden Tabelle sind die XMLA-Fehlercodeinformationen aufgeführt, die im Detailabschnitt der SOAP-Antwort enthalten sind. Die Spalten sind die Attribute eines Fehlers im Detailabschnitt eines SOAP-Fehlers.

Spaltenname Typ Description Null zulässig1
ErrorCode UnsignedInt Zurückgeben von Code, der den Erfolg oder Fehler der Methode angibt. Der Hexadezimalwert muss in einen UnsignedInt-Wert konvertiert werden. Nein
Warningcode UnsignedInt Gibt Code zurück, der eine Warnungsbedingung angibt. Der Hexadezimalwert muss in einen UnsignedInt-Wert konvertiert werden. Yes
Beschreibung String Fehler- oder Warntext und -beschreibung, der von der Komponente zurückgegeben wird, die den Fehler generiert hat. Yes
Quelle String Name der Komponente, die den Fehler oder die Warnung generiert hat. Yes
HelpFile String Pfad oder URL der Hilfedatei oder des Themas, das den Fehler oder die Warnung beschreibt. Yes

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 angewendet wird.

Im Folgenden sehen Sie ein Beispiel für einen SOAP-Fehler, der aufgetreten ist, wenn ein Methodenaufruf fehlgeschlagen ist:

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

Behandeln von Fehlern und Warnungen

SQL Server Analysis Services gibt die Messages-Eigenschaft im Stammelement für einen Befehl zurück, wenn die folgenden Situationen auftreten, nachdem dieser Befehl ausgeführt wird:

  • Die Methode selbst konnte nicht fehlschlagen, aber in der SQL Server Analysis Services-Instanz ist ein Fehler aufgetreten, nachdem der Methodenaufruf erfolgreich war.

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

Die Messages-Eigenschaft folgt allen anderen Eigenschaften, die im Stammelement enthalten sind, und kann ein oder mehrere Nachrichtenelemente enthalten. Jedes Message-Element kann wiederum entweder ein einzelnes Fehler - oder Warnelement enthalten, das Fehler oder Warnungen beschreibt, bzw. Warnungen, die für den angegebenen Befehl aufgetreten sind.

Weitere Informationen zu Fehlern und Warnungen, die in der Messages-Eigenschaft enthalten sind, finden Sie unter Messages Element (XMLA).For more information about errors and warnings that are contained in the Messages property, see Messages Element (XMLA).For more information about errors and warnings that are contained in the Messages property, see Messages Element (XMLA).

Behandeln von Fehlern während der Serialisierung

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

Behandeln von Inlinefehlern und Warnungen

SQL Server Analysis Services gibt einen Inlinefehler oder eine Warnung für einen Befehl zurück, wenn die XMLA-Methode selbst nicht fehlschlug, aber ein für ein Datenelement spezifischer Fehler in den Ergebnissen, die von der Methode zurückgegeben wurden, auf der SQL Server Analysis Services-Instanz aufgetreten ist, nachdem der XMLA-Methodenaufruf erfolgreich war.

SQL Server Analysis Services stellt Inlinefehler - und Warnelemente bereit, wenn Probleme, die für eine Zelle oder andere Daten in einem Stammelement enthalten sind, mithilfe des MDDataSet-Datentyps auftreten, z. B. ein Sicherheitsfehler oder Formatierungsfehler für eine Zelle. In diesen Fällen gibt SQL Server Analysis Services ein Fehler - oder Warnelement im Cell - oder Row-Element zurück, das den Fehler bzw. die Warnung enthält.

Im folgenden Beispiel wird ein Resultset veranschaulicht, das einen Fehler im Rowset enthält, das von einer Execute-Methode mithilfe des Befehls "Anweisung " zurückgegeben wird.

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

Siehe auch

Entwickeln mit XMLA in Analysis Services