エラーおよび警告の処理 (XMLA)
エラー処理は、XML for Analysis (XMLA) の Discover または Execute メソッドの呼び出しが実行されず、正常に実行されるがエラーまたは警告が生成される場合、または正常に実行されてもエラーを含む結果が返される場合に必要です。
| エラー | レポート |
|---|---|
| XMLA メソッド呼び出しを実行できない | Microsoft SQL Server Analysis Services は、エラーの詳細を含む SOAP エラーメッセージを返します。 詳細については、「 SOAP エラーの処理」を参照してください。 |
| メソッド呼び出しは成功したが、エラーまたは警告が発生した | Analysis Services には、メソッド呼び出しの結果を含むルート要素のMessagesプロパティに、それぞれのエラーまたは警告についてエラーまたは警告の要素が含まれています。 詳細については、「 エラーと警告の処理」を参照してください。 |
| メソッド呼び出しは成功したが、結果にエラーが含まれる | Analysis Services には、メソッド呼び出しの結果の適切なセルまたは行要素内に、エラーまたは警告のインラインエラーまたは警告要素がそれぞれ含まれています。 詳細については、「 インラインエラーと警告の処理」を参照してください。 |
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 エラーの詳細セクションに含まれるエラーの属性です。
| 列名 | Type | 説明 | Null 値が許可されます1 |
|---|---|---|---|
| ErrorCode | UnsignedInt | メソッドの成功または失敗を示すリターン コード。 16進数の値は、 Unsignedint 値に変換する必要があります。 | No |
| 警告コード | 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>
エラーおよび警告の処理
Analysis Services は、コマンドの実行後に次の状況が発生した場合に、コマンドのルート要素にMessagesプロパティを返します。
メソッド自体は失敗しませんでしたが、メソッドの呼び出しが成功した後に Analysis Services インスタンスでエラーが発生しました。
Analysis Services インスタンスは、コマンドが成功した場合に警告を返します。
Messagesプロパティは、ルート要素に含まれる他のすべてのプロパティに従い、1つまたは複数のメッセージ要素を含めることができます。 また、各 メッセージ 要素には、指定されたコマンドで発生したエラーまたは警告をそれぞれ記述した1つの エラー または 警告 要素を含めることができます。
Messagesプロパティに含まれるエラーと警告の詳細については、「 MESSAGES 要素 (XMLA)」を参照してください。
シリアル化実行時のエラーの処理
Analysis Services インスタンスが正常に実行されたコマンドの出力のシリアル化を既に開始した後にエラーが発生した場合、Analysis Services は、エラーの発生時に別の名前空間の Exception 要素を返します。 次に、Analysis Services インスタンスは、クライアントに送信される XML ドキュメントが有効なドキュメントであるように、開いているすべての要素を閉じます。 また、インスタンスは、エラーの説明を含む Messages 要素も返します。
インライン エラーおよび警告の処理
XMLA メソッド自体が失敗したが、XMLA メソッドの呼び出しが成功した後に、メソッドによって返された結果のデータ要素に固有のエラーが Analysis Services インスタンスで発生した場合、Analysis Services は、コマンドのインライン エラー または 警告 を返します。
セルに固有の問題や、 Mddatasetデータ型を使用してルート要素内に含まれるその他のデータに固有の問題が発生した場合、Analysis Services はインラインエラーと警告要素を提供します。たとえば、セルのセキュリティエラーや書式設定エラーが発生します。 このような場合、Analysis Services は、エラーまたは警告を含むセルまたは行の要素で、エラーまたは警告要素を返します。
次の例は、ステートメントコマンドを使用してExecuteメソッドから返された行セット内のエラーを含む結果セットを示しています。
<return>
...
<root>
...
<CellData>
...
<Cell CellOrdinal="10">
<Value>
<Error>
<ErrorCode>2148497527</ErrorCode>
<Description>Security Error.</Description>
</Error>
</Value>
</Cell>
</CellData>
...
</root>
...
</return>