次の方法で共有


エラーと警告の処理 (XMLA)

エラー処理は、XML for Analysis (XMLA) Discover メソッドまたは Execute メソッドの呼び出しが実行されない場合、正常に実行されたがエラーまたは警告が生成される場合、または正常に実行されたがエラーを含む結果が返される場合に必要です。

エラー レポーティング
XMLA メソッド呼び出しが実行されない Microsoft SQL Server Analysis Services は、エラーの詳細を含む SOAP エラー メッセージを返します。

詳細については、「 SOAP エラーの処理」セクションを参照してください。
メソッド呼び出しが成功した場合のエラーまたは警告 Analysis Services には、各エラーまたは警告のエラー要素または警告要素がそれぞれ、メソッド呼び出しの結果を含むルート要素の Messages プロパティに含まれています。

詳細については、「 エラーと警告の処理」セクションを参照してください。
メソッド呼び出しが成功した場合の結果のエラー Analysis Services には、メソッド呼び出しの結果の適切な Cell 要素または要素内に、エラーまたは警告のインライン error要素またはwarning要素が含まれます。

詳細については、「 インライン エラーと警告の処理」セクションを参照してください。

SOAP エラーの処理

Analysis Services は、次の状況が発生すると SOAP エラーを返します。

  • XMLA メソッドを含む SOAP メッセージが整形式でなかったか、Analysis Services インスタンスで検証できませんでした。

  • XMLA メソッドを含む SOAP メッセージに関連する通信またはその他のエラーが発生しました。

  • XMLA メソッドが Analysis Services インスタンスで実行されませんでした。

XMLstartA の SOAP エラー コードは、"XMLForAnalysis" で始まり、ピリオドと 16 進数の HRESULT 結果コードが続きます。 たとえば、エラー コード "0x80000005" は "XMLForAnalysis.0x80000005" として書式設定されます。 SOAP エラー形式の詳細については、「W3C Simple Object Access Protocol (SOAP) 1.1 の Soap Fault」を参照してください。

エラー コード情報

次の表は、SOAP 応答の詳細セクションに含まれる XMLA エラー コード情報を示しています。 列は、SOAP エラーの詳細セクションのエラーの属性です。

列名 タイプ 説明 Null で許可される 1
ErrorCode UnsignedInt メソッドの成功または失敗を示すコードを返します。 16 進数の値は、 UnsignedInt 値に変換する必要があります。 いいえ
WarningCode UnsignedInt 警告条件を示すコードを返します。 16 進数の値は、 UnsignedInt 値に変換する必要があります。 イエス
Description String エラーを生成したコンポーネントによって返されるエラーまたは警告テキストと説明。 イエス
Source String エラーまたは警告を生成したコンポーネントの名前。 イエス
HelpFile String エラーまたは警告を説明するヘルプ ファイルまたはトピックへのパスまたは URL。 イエス

1 データが必須で、返される必要があるか、または列が適用されない場合にデータが省略可能で null 文字列が許可されるかどうかを示します。

メソッド呼び出しが失敗したときに発生した SOAP エラーの例を次に示します。

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

エラーおよび警告の処理

Analysis Services は、コマンドの実行後に次の状況が発生した場合に、コマンドのroot要素のMessages プロパティを返します。

  • メソッド自体は失敗しませんでしたが、メソッド呼び出しが成功した後に Analysis Services インスタンスでエラーが発生しました。

  • Analysis Services インスタンスは、コマンドが成功すると警告を返します。

Messages プロパティは、root要素に含まれる他のすべてのプロパティに従い、1 つ以上のMessage要素を含めることができます。 さらに、各 Message 要素には、指定されたコマンドに対して発生したエラーまたは警告を記述する 1 つの error または warning 要素を含めることができます。

Messages プロパティに含まれるエラーと警告の詳細については、「Messages 要素 (XMLA)」を参照してください。

シリアル化中のエラーの処理

Analysis Services インスタンスが正常に実行されたコマンドの出力のシリアル化を既に開始した後にエラーが発生した場合、Analysis Services はエラーの時点で別の名前空間の Exception 要素を返します。 Analysis Services インスタンスは、クライアントに送信された XML ドキュメントが有効なドキュメントになるように、開いているすべての要素を閉じます。 インスタンスは、エラーの説明を含む Messages 要素も返します。

インライン エラーと警告の処理

XMLA メソッド自体が失敗しなかったが、XMLA メソッドの呼び出しが成功した後に Analysis Services インスタンスで返された結果のデータ要素に固有のエラーが発生した場合、Analysis Services はコマンドのインライン error または warning を返します。

MDDataSet データ型を使用してroot要素内に含まれるセルまたは他のデータに固有の問題が発生した場合 (セルのセキュリティ エラーや書式設定エラーなど) が発生した場合、Analysis Services はインラインのerrorおよびwarning要素を提供します。 このような場合、Analysis Services は、エラーまたは警告を含むCellまたはrow要素のerrorまたはwarning要素をそれぞれ返します。

次の例は、Statement コマンドを使用して、Execute メソッドから返された行セットにエラーを含む結果セットを示しています。

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

こちらもご覧ください

Analysis Services での XMLA を使用した開発