エラーの報告と診断

このトピックでは、プロセスおよびクエリでのエラー処理と、問題の詳細な診断に使用するダンプ生成のために、StreamInsight に装備されている機能について説明します。Windows Vista および Windows Server 2008 以降のオペレーティング システムでは、StreamInsight は、Windows エラー報告を使用します。Windows XP および Windows Server 2003 オペレーティング システムでは、StreamInsight は、エラー報告とダンプ生成に .NET 3.5 に標準装備されているワトソン博士 (DW20.exe および DWWin.exe) を使用します。

StreamInsight はエラー報告とダンプ生成用にこれらの Windows オペレーティング システムの標準ツールを使用するため、ユーザーが、Windows オペレーティング システム レベルで設定されているエラー報告の使用を承諾することが必要です。ユーザーがオペレーティング システム レベルでエラー報告を有効にすることを承諾すると、クライアント アプリケーション用のエラー報告とダンプは自動的に Microsoft に送信され、ダンプはローカル サーバーから削除されます。トラブルシューティングを目的としてダンプを調査する場合、エラー報告を無効にする必要があります。コンピューター上でエラー報告が有効になっているかどうかを判断するには、StreamInsight アプリケーションを実行しているサーバーの管理者に問い合わせてください。次のセクションで説明するように設定を変更します。

ダンプの生成

ダンプは、次の 2 つのシナリオで StreamInsight アプリケーション用に生成されます。

プロセス エラー

StreamInsight は、埋め込みサーバー構成内またはホストされたサーバー構成内に配置できます。これらの構成で発生したグローバルな未処理の例外では、いずれの構成の場合でも、エラーは任意の CLR アプリケーションのエラーと類似しており、プロセス ダンプが Windows オペレーティング システムによって生成されます。たとえば、ユーザー定義関数やユーザー定義演算子によって別のスレッドに呼び出されたモジュールで発生した未処理の例外、またはアダプターからの未処理の例外が、これに該当します。

クエリ エラー

StreamInsight クエリ内の例外は、埋め込みサーバー構成またはホストされたサーバー構成のいずれの場合でも、必ずしも StreamInsight プロセス エラーになるとは限りません。たとえば、ユーザー定義関数またはユーザー定義演算子からの例外があるとします。次の例に示すように、StreamInsight 診断 API を使用してデバッグ ダンプをプログラムによる処理によって生成するようにアプリケーション クエリに指示できます。ただし、Windows XP および Windows Server 2003 では、ダンプ生成はプロセスのエラーの原因となることに注意してください。Windows Vista および Windows Server 2008 以降では、このエラーは発生しません。 

Server server = Server.Create(...);  // or Server.Connect(...) if this is a client application connecting to a server.
...
// Generate error reports when a query fails.
DiagnosticSettings settings = new DiagnosticSettings(DiagnosticAspect.GenerateErrorReports, DiagnosticLevel.Always);
server.SetDiagnosticSettings(new Uri("cep:/Server"), settings);
注記注意

デバッグ ダンプ ファイルには機密情報が含まれている場合があります。機密情報を保護するには、アクセス制御リスト (ACL) を使用してこのファイルへのアクセスを制限するか、アクセスが制限されたフォルダーにファイルをコピーすることができます。デバッグ ファイルを Microsoft サポート サービスに送信する前には、機密性の高い情報をすべて削除することをお勧めします。

エラーの報告

既定では、エラー報告のユーザーの承諾が有効になっている場合、エラー報告は Microsoft に送信されます。

Windows Vista と Windows Server 2008 およびそれ以降

プロセス エラー

StreamInsight サーバーには、任意の Windows アプリケーションを埋め込むことができます。そのアプリケーションの実行ファイルでエラーが発生すると、エラー報告のユーザーの承諾設定に基づいて、そのエラーが Microsoft に送信されるかどうかが判断されます。エラーの原因によっては、StreamInsight 呼び出し履歴およびその他の情報がエラー ダンプに含まれる場合があります。StreamInsight には、このプロセスに介入するための方法は用意されていません。

クエリ エラー

クエリ エラーの報告も、プロセス エラーの報告について前に説明した承諾のポリシーと同様のポリシーに準拠します。ただし、前に説明したようにクエリ エラー用のダンプ生成がプログラムによって有効になっている場合、そのダンプとエラーを、エラーが発生したローカル サーバーに維持するように選択できます。

ローカル サーバーでの維持を選択するには、次のレジストリ キーの設定を使用して StreamInsight への自動化されたエラーの報告を無効にする必要があります。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Consent]

"StreamInsightDump"=dword:00000001

プロセス エラーおよびクエリ エラーのシナリオでは、いずれのエラーの場合も、[コントロール パネル][問題のレポートと解決策] を表示してエラーを調査できます。Windows 7 および Windows Server 2008 R2 でエラーを表示するには、[コントロール パネル][アクション センター][メンテナンス][信頼性の履歴の表示][問題のレポートをすべて表示] の順にクリックします。エラーは、使用しているアプリケーション名 (MyApplication_name.exe など) または StreamInsightHost.exe に対してレポートされています。

Windows XP および Windows 2003

エラー報告を無効にしてダンプがローカル ホストに保存されるようにするには、この Microsoft サポート技術情報を参照してください。エラー報告は、ディレクトリ %USERPROFILE%\Local Settings\Application Data\PCHealth\ErrorRep または %SYSTEMROOT%\PCHEALTH\ErrorRep\Qsignoff にキュー登録および配置されています。

エラー報告インターフェイスへのアクセス権を持つ管理者は、キュー内のエラーを表示し、エラーを Microsoft に送信するかどうかを状況に応じて選択できます。オペレーティング システムは、キュー内のエントリの最大数のエラーを維持します。この限度は、システム パラメーターによって異なります。この限度を超過すると、オペレーティング システムによる新しいエラー レポートのキューへの追加は行われません。したがって、詳細な調査が必要なエラーがないかどうかを調べるために、管理者によるこれらのキューの定期的な確認をお勧めします。また、オプションとして、dw20.exe を呼び出し、キューをフラッシュできます。フラッシュしない場合、レポートは無期限に維持されます。

関連項目

概念

StreamInsight サーバーおよびクエリの監視