次の方法で共有


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

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

エラー レポート
XMLA メソッド呼び出しを実行できない Microsoft SQL Server SQL Server Analysis Services は、エラーの詳細を含む SOAP エラー メッセージを返します。

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

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

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

SOAP エラーの処理

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

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

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

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

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

エラー コード情報

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

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

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

次は、メソッド呼び出しが失敗した場合に発生した SOAP エラーの例です。

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

エラーおよび警告の処理

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

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

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

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

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

シリアル化実行時のエラーの処理

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

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

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

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

次の例は、ステートメント コマンドを使用して 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 による開発