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 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 SQL Server Analysis Services enthält ein Fehler- oder Warnungselement für jeden Fehler oder jede Warnung, bzw. 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 SQL Server Analysis Services enthält einen Inlinefehler oder warnungselement für den Fehler oder die Warnung, bzw. 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, wurde nicht gut gebildet oder konnte von der SQL Server Analysis Services-Instanz 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 für die SQL Server Analysis Services-Instanz nicht 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
Beschreibung String Fehler- oder Warnungstext und Beschreibung, die durch die Komponente zurückgegeben werden, die den Fehler erzeugt hat. Ja
Quelle 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 angewendet wird.

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="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 Eigenschaft "Messages" im Stammelement für einen Befehl zurück, wenn die folgenden Situationen auftreten, nachdem dieser Befehl ausgeführt wird:

  • Die Methode selbst schlägt nicht fehl, aber ein Fehler in der SQL Server Analysis Services Instanz, 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 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 Nachrichteneigenschaft enthalten sind, finden Sie unter 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 ein Exception-Element in einem anderen Namespace am Punkt des Fehlers 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 darüber hinaus ein Messages -Element zurück, das eine 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 fehlschlägt, aber ein Fehler, der für ein Datenelement in den von der Methode zurückgegebenen Ergebnissen auf der SQL Server Analysis Services Instanz aufgetreten ist, nachdem der XMLA-Methodenaufruf erfolgreich war.

SQL Server Analysis Services liefert Inlinefehler- und Warnelemente, 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 Warnungselement im Cell- oder Row-Element zurück, das den Fehler oder die Warnung enthält.

Das folgende Beispiel veranschaulicht ein Resultset, das einen Fehler in dem Rowset enthält, das von der Execute -Methode über den Befehl Statement zurückgegeben wurde.

<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