エラーおよび警告の処理 (XMLA)

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

エラー

レポート方法

XMLA メソッド呼び出しを実行できない

Microsoft SQL Server Analysis Services は、失敗についての詳細を含む SOAP エラー メッセージを返します。

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

メソッド呼び出しは成功したが、エラーまたは警告が発生した

Analysis Services は、それぞれのエラーまたは警告に対応する error または warning 要素を、メソッド呼び出しの結果が含まれる root 要素の Messages プロパティに格納します。

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

メソッド呼び出しは成功したが、結果にエラーが含まれる

Analysis Services は、エラーまたは警告に対応するインライン error 要素または warning 要素を、メソッド呼び出しの結果の該当する Cell 要素または row 要素に格納します。

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

SOAP エラーの処理

Analysis Services は、以下の状況が発生した場合に、SOAP エラーを返します。

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

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

  • XMLA メソッドが Analysis Services インスタンスで実行できなかった。

XMLA の 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 要素も返します。

インライン エラーおよび警告の処理

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

Analysis Services は、MDDataSet データ型を使用する、root 要素に含まれるセルまたは他のデータに固有の問題が発生した場合に、インライン 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>