COM+ 管理エラーの処理

COMAdmin オブジェクトの使用時に生成されたエラーは、次の 2 つの方法で報告されます。

  • COMAdmin ライブラリに固有のエラー コードを使用する。
  • 特殊な ErrorInfo コレクションで使用できる拡張エラー情報を使用する。

エラー コード

COM エラー メッセージと同様、管理エラー コードを処理します。 Microsoft Visual C++ では、これらのコードは HRESULT 値として返されます。 Microsoft Visual Basic では、キャッチできる例外としてスローされます。 C++ プログラマーの場合、COM+ 管理エラー コードは Winerror.h で定義されます。 Visual Basic プログラマーの場合は、Visual Basic IDE を通じて使用できます。

ErrorInfo コレクション

何らかのエラー コードによって通知されるエラーが発生した場合、エラーの性質に応じて、より詳細な情報が利用できる場合があります。 COMAdmin オブジェクトは、複数の読み取り操作や書き込み操作など、詳細なレポートなしでエラーの正確な原因を特定することが困難な状況において、拡張情報を提供します。

たとえば、COMAdminCatalogCollection オブジェクトで PopulateSaveChanges などのメソッドを使用する場合、コレクション内のすべての項目のデータの読み取りまたは書き込みを行うことができます。 複雑なエラーが発生する可能性があり、1 つの数値エラー コードに基づいて診断するのが難しいことがあります。 そのため、COMAdmin ライブラリは、特殊なコレクションを通じて拡張エラー情報を作成します。

拡張エラー情報を使用できる場合、エラーが発生した元のコレクションに関連する ErrorInfo コレクションに配置されます。 エラー レポートを取得するには、元のコレクションに関連する ErrorInfo コレクションを取得し、含まれている項目を調べます。 COMAdminCatalogCollectionGetCollection を使用して ErrorInfo コレクションを取得できます。2 番目のパラメーターは空白のままにし、通常はそこで親項目の Key プロパティを指定します。

エラーが発生した場合、そのコレクションに対して他の操作を実行せずに、失敗したコレクションの ErrorInfo コレクションをすぐに取得して設定する必要があります。 それ以外の場合、ErrorInfo コレクションはリセットされ、エラーの詳細は示されません。

ErrorInfo コレクション内の項目は、エラーの特定の原因を詳しく説明する、特別なエラー報告プロパティ MajorRef および MinorRef を公開します。 詳細については、ErrorInfo を参照してください。

トランザクション内の COM+ 管理操作

COM+ 管理カタログの使用の概要例

COMAdmin オブジェクトの概要

COM+ カタログでのコレクションの取得

プロパティの設定と COM+ カタログへの変更の保存