[XADM] インフォメーション ストア フォルダにアクセスすると、処理速度が低下する

重要 : この資料には、レジストリの編集に関する情報が含まれています。レジストリを編集する前に、問題が発生した場合に備えて、レジストリの復元方法を理解しておいてください。復元方法の詳細については、Regedit.exe のヘルプ トピック「レジストリを復元する」、または Regedt32.exe のヘルプ トピック「レジストリ キーを復元する」を参照してください。

現象

プライベート インフォメーション ストアまたはパブリック インフォメーション ストアの 1 つ以上のフォルダを開こうとすると、処理速度が大幅に低下したり、応答しなくなることがあります。この現象は、以下のような形で現れる場合があります。
  • フォルダのメールにアクセスする場合 (たとえば、アイテムの状態を開封済みから未読に変更する場合、アイテムを開く場合、アイテムを削除する場合など) に、クライアントの応答が非常に遅くなります。
  • " クライアントの処理が失敗しました " という語句を含む MAPI (メッセージング アプリケーション プログラミング インタフェース) エラー メッセージが表示されます。
  • Mdbdata フォルダのログ ファイルが一定の割合で増大しているのに、パブリック フォルダ リソースやメールボックス リソースの変化が、あるとしてもほとんど確認されません。
  • 新しいフォルダを作成して、その新しいフォルダに問題の発生したフォルダの内容を移動すると、数日間は問題が解決されますが、その後問題が再発します。
  • 特定のフォルダにアクセスした場合に応答が遅くなったり問題が発生したりしますが、同じデータベースの別のフォルダは通常どおりに応答します。これには、ゲートウェイ フォルダ (たとえば、Mts-in フォルダや Mts-out フォルダ) などの特別なフォルダが含まれます。

原因

個人用フォルダに格納されている、キャッシュされた制限、バック リンク、および 検索内容 が多すぎます。


この資料で説明されている現象が発生しているかどうかを判断するには、以下のいずれかのテストを実行します。


重要 : テスト 1 はサーバーのフォルダ ビューをリセットするので、テスト 1 を実行する前に、インフォメーション ストアの完全なオンライン バックアップを取っておいてください。

テスト 1

  1. パブリック インフォメーション ストアまたはプライベート インフォメーション ストアの Reset Views レジストリの値を追加します。


    警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要です。マイクロソフトは、レジストリ エディタの誤用により発生した問題に関しては、一切責任を負わないものとします。レジストリ エディタは、自己の責任においてご使用ください。


    レジストリの編集方法の詳細については、レジストリ エディタ (Regedit.exe) のヘルプ トピック「キーと値の変更」、または Regedt32.exe のヘルプ トピック「レジストリ情報の追加と削除」と「レジストリ情報の編集」を参照してください。レジストリを編集する前にレジストリのバックアップを必ず作成してください。Windows NT または Windows 2000 を実行している場合、システム修復ディスク (ERD) も更新する必要があります。


    この値を追加するには、以下のいずれかの処理のうち適切なものを実行します。
    • パブリック インフォメーション ストア : レジストリ キーを変更してパブリック インフォメーション ストアの Reset Views 値を変更するには、以下の手順を実行します。
      1. レジストリ エディタ (Regedt32.exe) を起動します。
      2. HKEY_LOCAL_MACHINE サブツリー下にある次のサブキーに移動します。
        System\CurrentControlSet\Services\MSExchangeIS\ParametersPublic
      3. REG_DWORD 型の Reset Views 値を追加します。
      4. このレジストリのエントリを使用しない場合の Reset Views のデフォルト値は 0 です。この値を 1 に設定します。
      5. レジストリ エディタを終了します。
    • プライベート インフォメーション ストア : レジストリ キーを変更してプライベート インフォメーション ストアの Reset Views 値を変更するには、以下の手順を実行します。
      1. レジストリ エディタ (Regedt32.exe) を起動します。
      2. HKEY_LOCAL_MACHINE サブツリー下にある次のサブキーに移動します。
        System\CurrentControlSet\Services\MSExchangeIS\ParametersPrivate
      3. REG_DWORD 型の Reset Views 値を追加します。
      4. このレジストリのエントリを使用しない場合の Reset Views のデフォルト値は 0 です。この値を 1 に設定します。
      5. レジストリ エディタを終了します。
  2. インフォメーション ストア サービスを停止し、再開します。
この値が存在し、かつ 0 以外の値に設定されている場合、インフォメーション ストアは次回のクリーンアップ時 (インフォメーション ストアの保守のとき) にキャッシュされている制限をすべて削除し、値を 0 に戻します。レジストリ キーを調べて値が 0 に戻っているかどうかを確認すると、この処理が行われたかどうかを判断できます。キャッシュされている制限が削除された後、フォルダのパフォーマンスが大きく向上した場合は、この資料で説明している現象が発生しています。

テスト 2

  1. インフォメーション ストアを停止します。
  2. コマンド プロンプトで Exchsrvr\Bin フォルダに移動し、次のコマンドを実行します。
    isinteg -pri|pub -dump -l logfilename
    警告 : このコマンドは、指定したデータベースのすべてのフォルダの詳細をダンプします。データベースのサイズによっては、作成されるログ ファイルが非常に大きくなる場合があります。
  3. ログ ファイルを調べて、以下のフィールドに大量のエントリを持つフォルダを検索します。
    Search FIDs=

    Recursive FIDs=

    Search Backlinks=

    Categ FIDs=
    次に例を示します。
    Search FIDs=0001-000000000418,0001-00000000041B,0001-000000000421, 0001-000000000423,0001-000000000424,0001-000000000428,0001-00000000042D
    これが数百エントリにわたって続く場合、この資料で説明している現象が発生しています。

回避策

この現象を回避するには、影響を受けているデータベース (パブリック インフォメーション ストアまたはプライベート インフォメーション ストアのいずれか) の Aging Keep Time 値を、デフォルトの 8 日から 1 日に減らします。

Aging Keep Time

この値を減らすには、以下のいずれかの処理のうち適切なものを実行します。
  • パブリック インフォメーション ストア : レジストリ キーを変更してパブリック インフォメーション ストアの Aging Keep Time を変更するには、以下の手順を実行します。
    1. レジストリ エディタ (Regedt32.exe) を起動します。
    2. HKEY_LOCAL_MACHINE サブツリー下にある次のサブキーに移動します。
      System\CurrentControlSet\Services\MSExchangeIS\ParametersPublic
    3. REG_DWORD 型の Aging Keep Time 値を追加します。
    4. このレジストリ エントリを使用しない場合の Aging Keep Time のデフォルト値は、8 日です。Exchange Server 4.0 および 5.0 はこの値をミリ秒で格納します (1000*60*60*24*8 = 691,200,000 から、8 日は 691,200,000 ミリ秒です)。Exchange Server 5.5 はこの値を秒で格納します (60*60*24*8 = 691,200 から、8 日は 691,200 秒です)。新しい Aging Keep Time 値を 1 日に設定するには、Exchange Server 4.0 および 5.0 の場合 86,400,000 に、または Exchange Server 5.5 の場合 86,400 に値を設定します。これより低い値を必要とする場合も、Exchange Server 4.0 および 5.0 はミリ秒を、Exchange Server 5.5 は秒を使用していることを覚えておいてください。


      : この値は 10 進値で入力します。
    5. レジストリ エディタを終了します。
  • プライベート インフォメーション ストア : レジストリ キーを変更してプライベート インフォメーション ストアの Aging Keep Time 値を変更するには、以下の手順を実行します。
    1. レジストリ エディタ (Regedt32.exe) を起動します。
    2. HKEY_LOCAL_MACHINE サブツリー下にある次のサブキーに移動します。
      System\CurrentControlSet\Services\MSExchangeIS\ParametersPrivate
    3. REG_DWORD 型の Aging Keep Time 値を追加します。
    4. このレジストリ エントリを使用しない場合の Aging Keep Time のデフォルト値は、8 日です。Exchange Server 4.0 および 5.0 はこの値をミリ秒で格納します (1000*60*60*24*8 = 691,200,000 から、8 日は 691,200,000 ミリ秒です)。Exchange Server 5.5 はこの値を秒で格納します (60*60*24*8 = 691,200 から、8 日は 691,200 秒です)。新しい Aging Keep Time 値を 1 日に設定するには、Exchange Server 4.0 および 5.0 の場合 86,400,000 に、または Exchange Server 5.5 の場合 86,400 に値を設定します。これより低い値を必要とする場合も、Exchange Server 4.0 および 5.0 はミリ秒を、Exchange Server 5.5 は秒を使用していることを覚えておいてください。


      : この値は 10 進値で入力します。
    5. レジストリ エディタを終了します。
    6. インフォメーション ストア サービスを停止し、再開します。
この値がまだ十分に低くない場合、パフォーマンスが許容できるレベルになるまで値を減らしてください。ただし、この資料の「Aging Clean Interval」で説明するように、Aging Clean Interval 値をデフォルトの 1 日から減らす必要もあります。

Aging Clean Interval

Aging Clean Interval 値は、インフォメーション ストアがキャッシュから消去する必要のあるアイテムを確認する間隔です (Exchange Server 4.0、5.0、および 5.5 で秒単位です)。デフォルト値は 24 時間 (つまり、86,400 秒) です。パブリック インフォメーション ストアまたはプライベート インフォメーション ストアの Aging Clean Interval 値を減らすには、以下のいずれかの方法のうち適切なものを使用します。
  • パブリック インフォメーション ストア : レジストリ キーを変更してパブリック インフォメーション ストアの Aging Clean Interval 値を減らすには、以下の手順を実行します。
    1. レジストリ エディタ (Regedt32.exe) を起動します。
    2. HKEY_LOCAL_MACHINE サブツリー下にある次のサブキーに移動します。
      System\CurrentControlSet\Services\MSExchangeIS\ParametersPublic
    3. REG_DWORD 型の Aging Keep Time 値を追加します。
    4. このレジストリ エントリを使用しない場合の Aging Keep Time のデフォルト値は、86,400 です (つまり、1 日を 60*60*24 秒で表現しています)。新しい Aging Keep Time 値を 86,400 未満の数に設定します。


      : この値は 10 進値で入力します。
    5. レジストリ エディタを終了します。
  • プライベート インフォメーション ストア : レジストリ キーを変更してプライベート インフォメーション ストアの Aging Clean Interval 値を変更するには、以下の手順を実行します。
    1. レジストリ エディタ (Regedt32.exe) を起動します。
    2. HKEY_LOCAL_MACHINE サブツリー下にある次のサブキーに移動します。
      System\CurrentControlSet\Services\MSExchangeIS\ParametersPrivate
    3. REG_DWORD 型の Aging Keep Time 値を追加します。
    4. このレジストリ エントリを使用しない場合の Aging Keep Time のデフォルト値は、86,400 です (つまり、1 日を 60*60*24 秒で表現しています)。新しい Aging Keep Time 値を 86,400 未満の数に設定します。


      : この値は 10 進値で入力します。
    5. レジストリ エディタを終了します。
    6. インフォメーション ストア サービスを停止し、再開します。
たとえば、1 日に 2 回キャッシュをクリアするには、以下の手順を実行します。
  1. Aging Keep Time 値を低い設定 (1 時間 = 3,600 秒) にします。
  2. Aging Clean Interval を 43,200 に設定します。
  3. キャッシュはインフォメーション ストアの保守中にクリアされます。そのため、12 時間ごとにインフォメーション ストアの保守を実行してください。
インフォメーション ストアの保守の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
159196 XADM: Tasks Controlled by the Information Store Maintenance Schedule

Isinteg の実行

Isinteg ユーティリティを実行して、キャッシュされている制限を強制的に直ちにクリーンアップできます。以下の処理が行われます。
  • バックリンクを削除します。
  • 制限テーブルを削除します。
フォルダに大量の制限がある場合に isiteg -fix コマンドを実行すると、キャッシュされている検索内容がすべてクリアされ、フォルダは正常に機能します。
isinteg -fix -pri -test morefld
Microsoft Exchange Information Store Integrity Checker v5.5.265

Copyright (c) 1986-1997 Microsoft Corp. All rights reserved.

Started: 04/28/00 19:06:08

Server name: Server.domain.com

Store path: D:\exchsrvr\MDBDATA\PRIV.EDB

Store size: 1510031360 bytes

Output log: isinteg.pri

Check mode: check and fix

Options: -fix -pri -test morefld


Starting test 1 of 3, 'Categorization Tables'

Finished Categorization Tables. Time: 0h:0m:0s

Starting test 2 of 3, 'Restriction Tables'

Finished Restriction Tables. Time: 0h:0m:0s

Starting test 3 of 3, 'Search Folder Links'

Finished Search Folder Links. Time: 0h:0m:23s

No reference count tests

詳細

拡張 MAPI を使用してフォルダを検索するために、Restrict() メソッドおよび FindRow() メソッドの 2 つのメソッドを使用できます。Restrict() メソッドはそのフォルダの制限をキャッシュし、数日間削除されないようにします。ビュー、フィルタ、または検索が、常に変化するプライマリ インデックスを使用している場合、フォルダを呼び出すごとに新しい制限が追加されます。その結果、変更を適用するたびにすべてのバックリンクにアクセスする必要があるので、フォルダのパフォーマンスが極端に低下することがあります。


フォルダ インデックスの保管期間の制御については、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
159197 XADM: Controlling Folder Index Aging
CDO (Collaboration Data Objects) 1.21 でもこの問題が発生することがあります。CDO の MessageFilter オブジェクトは MAPI 制限 として実装されています。MessageFilter に依存する CDO コードは、可能であれば FindRow を使用する同等の拡張 MAPI コードに置き換える必要があります。ただし、この操作は常に実行できるわけではありません。たとえば、拡張 MAPI は予定アイテムを認識しないので、予定を検索する CDO コードは拡張 MAPI に置き換えることができません。この場合、CDO コードを評価し直して、 異なる MessageFilter の数 を減らすことができるかどうかを確認する必要があります。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 216076 (最終更新日 2001-12-05) をもとに作成したものです。


プロパティ

文書番号:216076 - 最終更新日: 2005/08/25 - リビジョン: 1

フィードバック