次の方法で共有


COM+ では、Windows Server でのプロセス ダンプ ファイルとプロセス終了の自動収集がサポートされています

適用対象: Windows 10のWindows SDK
元の KB 番号: 910904

概要

COM+ コンポーネントで異常に高い通話時間が発生した場合、システムによってイベントがログに記録されます。 イベント ログは、問題が発生する COM+ コンポーネントを識別します。 さらに、イベント ログには、この記事 (910904) が含まれています。 システムは、次のいずれかのアクションまたは両方を実行するように構成できます。

  • 問題の根本原因分析のためにプロセス ダンプ ファイルを自動的に収集します。
  • 手動による介入なしで問題から回復するために、プロセスを終了します。

システムがダンプ ファイルを収集したら、 デバッグ診断ツール (DebugDiag) を使用して、問題を説明し、既知の解決策を提供するレポートを生成します。

既定の動作

次のような状況で問題が発生します。

  • COM+ コンポーネントの呼び出し時間が 10 分を超えています。
  • この実行時間の長い COM+ コンポーネントをホストするアプリケーションの実行中に、Component Services Microsoft Management Console (MMC) スナップインを開きます。

このシナリオでは、次のイベントがアプリケーション ログに記録されます。

Event Type: information
Event Source Information: COM+
COM+ Event Category: (117)
Event ID: 782
Description: The average call duration exceeded 10 minutes.
If this is not the expected behavior, see Microsoft Knowledge Base Article 910904 in http://support.microsoft.com for detailed information about
how to use the COM+ AutoDump feature to automatically generate dump files and terminate the process if the problem recurs.
Server application ID: <YourAppID>
Server application instance ID: <YourAppInstanceID>
Server application name: <YourAppName>

構成オプション

重要

このセクションでは、レジストリの変更について説明します。 手順に注意深く従ってください。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 予防措置としてレジストリをバックアップします。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。

実行時間の長い COM+ コンポーネントが検出されたときに、次のアクションの一方または両方を実行するようにシステムを構成できます。

  • プロセス ダンプ ファイルを自動的に収集します。

  • プロセスを終了します。

    これを行うには、次のレジストリ値を使用します。

    値の名前 データ型 説明 既定値
    AverageCallThreshold REG_DWORD 適切なアクションが実行されるしきい値 (秒単位) 0
    DumpType REG_DWORD 0 = 完全なダンプ ファイルを生成します。1 = ミニダンプ ファイルを生成します。2 = ダンプ ファイルなし 0
    Terminate REG_DWORD 0 = プロセスは続行されます。1 = プロセスが終了します 0
  • コンピューター上のすべての COM+ コンポーネントのアクションをグローバルに定義するには、次のレジストリ キーの下に構成値を追加します。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump

  • グローバル設定に関係なく、特定の COM+ コンポーネントに対して実行するアクションを定義するには、次のレジストリ キーの下に構成値を追加します。
    HKEY_CLASSES_ROOT\AppId\{<YourAppID>}\AutoDump\{<YourCLSID>}

推奨事項

次の内容は、完全なダンプ ファイルをチェックして分析する方法を示しています。

完全なダンプ ファイルを収集する

COM+ コンポーネントで異常に高い呼び出し時間が発生した場合は、完全なダンプ ファイルを収集します。 たとえば、次の 1 つのレジストリ値を作成します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump AverageCallThreshold = 300

特定の環境に適したAverageCallThresholdレジストリ値を選択する方法の詳細については、「考慮事項」セクションを参照してください。

同様に、COM+ アプリケーションで未処理の例外が発生したときに、完全なダンプ ファイルを収集します。 これを行うには、各 COM+ アプリケーションのプロパティの [ダンプ] タブの [アプリケーション 障害チェックでイメージ ダンプ有効にする] ボックスをチェックします。

ダンプ ファイルを分析する

ダンプ ファイルを分析するには、次の手順に従います。

  1. デバッグ診断ツール (DebugDiag) をダウンロードしてインストールします。

  2. 次の手順に従って、デバッグ診断ツールを使用してダンプ ファイルの分析レポートを生成します。

    1. [スタート] メニューから DebugDiag Analysis アプリケーションを実行します。
    2. [ 設定] を選択し、[基本設定] タブ 選択します。
    3. [シンボル検索パス] フィールドの [Microsoft パブリック シンボル サーバー] オプションがオンになっていることを確認し、[戻る] を選択します。
    4. [既定の分析] \ [CrashHangAnalysis] オプションを選択します。
    5. [ データ ファイルの追加] を選択します
    6. 分析するダンプ ファイルを選択します。
    7. [ 分析の開始] を選択します

    結果の HTML レポートは、デスクトップ上の新しい Microsoft インターネット エクスプローラー ウィンドウに表示され、DebugDiag Reports ディレクトリに保存されます。 このディレクトリの既定の場所は %USERPROFILE%\Documents\DebugDiag\Reports です

  3. 問題を解決するには、レポートの [推奨事項 ] セクションに記載されているガイダンスに従います。 レポートのこのセクションでは、次のことをお勧めします。

    • 既知の問題について説明する Microsoft サポート技術情報の記事が表示される場合があります。
    • アプリケーションの開発者に、修正に使用できる情報が提供される場合があります。
    • 適切なベンダーまたはMicrosoft サポートに従うことをお勧めします。 詳細については、Microsoft サポートに問い合わせる場合は、分析プロセスを高速化するためにレポート ファイルを指定します。 完全なダンプ ファイルも必要になる場合があります。

考慮事項

考慮すべきいくつかの要因を次に示します。

AverageCallThreshold レジストリ値

値 300 秒は、ほとんどの環境に適したしきい値です。 理想的な値は、特定の環境によって異なります。 可能な限り迅速にアクションを実行し、正当な問題が発生した場合にのみアクションを実行するには、問題のあるシナリオでのみ超えられる最小の値を選択します。

TerminateProcess レジストリ値

呼び出し時間が長い場合にプロセスを終了すると、COM+ コンポーネントが特定の問題から自動的に回復するのに役立つ場合があります。 これは、高可用性が重要な環境で推奨されます。 この機能を使用する場合は、プロセスを意図せずに終了しないように、適切な AverageCallThreshold レジストリ値を選択します。

DumpType レジストリ値

ミニダンプ ファイルは、完全なダンプ ファイルよりも高速に作成でき、ディスク領域を占有します。 ただし、多くの場合、必要なデータが不足しているため、問題を分析するのに役立ちません。 Dllhost.exe プロセスの完全ダンプ ファイルの一般的なサイズは、10 MB から 50 MB までです。 実際のサイズは、ダンプされたプロセスのワーキング セットのサイズによって異なります。 ファイルは通常、数秒以内に生成されます。

ダンプ ファイル オプション

既定では、ダンプ ファイルは %systemroot%\system32\com\dmp ディレクトリに 格納されます。 適切な COM+ アプリケーションの [ イメージ ダンプ ディレクトリ ] ボックスと [ ダンプ イメージの最大数 ] 領域の設定を使用して、ダンプ ファイルの場所と数を制御します。

通話時間

COM+ コンポーネントの呼び出し時間は、COM+ コンポーネントのすべてのインスタンスの実行平均です。 呼び出し時間は COM+ システム アプリケーションによって計算され、コンポーネント サービス MMC スナップインの状態ビューの 通話時間 (ms) 列に表示されます。