このドキュメントでは、すべての COM+ アプリケーションで使用される DLLHOST 処理に関連する問題と、このホスト処理の問題を解決する方法について説明します。
このドキュメントに関しては個別の要件はありません。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。
Media Convergence Server(MCS; メディア コンバージェンス サーバ)7835(他の MCS プラットフォームも適用)
Cisco CallManager 3.x および CallManager 4.x(その他の CallManager の該当するバージョン)
本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。 稼働中のネットワークで作業を行う場合、コマンドの影響について十分に理解したうえで作業してください。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
DLLHOST 処理は、Windows 2000 のすべてのバージョンで使用され、すべての COM+ アプリケーションで行われるホスト処理です。 Window システムでは ASP ページの管理と実行のために COM+ を使用しています(Internet Information Server(IIS)/サービス)。 したがって、ASP ページが呼び出されると、その ASP ページを実行するために DLLHOST が使用されます。
具体的には、DLLHOST は、すべての COM+ アプリケーションで行われるホスト処理です。 分散コンポーネント オブジェクト モデル(DCOM)は、ダイナミック リンク ライブラリ(DLL)ベースの COM オブジェクトのサポート モジュールです。 DCOM は、Windows、ほとんどの Microsoft 製品、および COM+ または DCOM を使用する多くの Microsoft 以外の製品の基本的な部分であるソフトウェア アーキテクチャ モデルです。 ほとんどの場合、タスク リストに DLLHOST が表示されることはありません。 通常、DLLHOST はその機能を開始して実行し、終了します。 ただし場合によっては、Java COM オブジェクトが実行されると(インターネットをブラウズして Java コードを含むページに移動した場合に発生する可能性があります)、DLLHOST が終了せず、タスク リストで確認できる状態になることがあります。
DLLHOSTがタスクを完了したかどうか判別する方法がないので、End Task を行わないことが重要です。 上級ユーザは、レジストリ キー「HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Java VM\ MSDebug」を削除することで、DLLHOST がタスク リストに常に表示される問題を解決することができます。 DLLHOST は通常は安定していますが、DLLHOST が管理している DLL によって問題が引き起こされる場合がときどきあります。 このドキュメントの「解決策」セクションは、DLLHOST 処理でのメモリ リークを識別する手順を示します。
詳細については、最新の Windows オペレーティング システム(OS)と Structured Query Language(SQL; 構造化クエリー言語)に関する「Readme Notes」(登録ユーザのみ)を参照してください。
最初の作業は、DLLHOST 処理でメモリ リークを起こしている COM+ アプリケーションを識別することです。 これらのステップは、この問題のトラブルシューティングを始めるための基本になります。
Task Manager で、DLLHOST.EXE ファイルに関係する process identifier(PID; プロセス識別子)を調べます。
[Start]> [Programs] > [Administrative Tools] > [Component Services] の順に選択します。
[Component Services] > [Computers] > [My Computer] > [COM+ Applications] の順に展開します。
COM+ Applications を選択します。
COM+ を右クリックし、[View] > [Status View] を選択します。
右側のペインで、アクティブな COM+ アプリケーションの右側に関連する PID がリストされています。 この PID を、Task Manager で PID を識別するときの相互参照として使用します。
次の例では、Task Manager の DLLHOST が PID 2456 を参照しており、200 MB 以上のメモリにアクセスしています。 Component Services では、PID 2456 が「IIS Out-Of Process Pooled Applications」に関連付けられています。 この場合、Cisco CallManager の状態は Cisco Bug ID CSCea07798(登録ユーザのみ)に該当しています。これは「IIS Out-Of Process Pooled Application」を使用している Multilevel Administration Access(MLA)が起こすメモリ リークに関連するものです。 この状況では、MLA アカウントではなく、CCMAdministrator アカウントを使用すると問題が解決します。
この情報を利用して既知の不具合が問題であるかどうか 見る COM+ アプリケーションのためのマイクロソフト社Webサイトおよび Cisco.com および検索両方に行くことができます。
または、perfmon を使用して DLLHOST のプライベート バイト数を確認できます。 プライベート バイト数が数日間一定であれば、メモリ リークはありません。 プライベート バイト数が増加している場合、特定すべきメモリ リークがあります。
シスコ テクニカル サポートでこれらの問題に関するサービス リクエストをオープンする前に、次の情報を収集し、テクニカル サポート エンジニアがこれを使用できるようにしてください。
エラーに関連していると思われるすべてのイベント ログを収集してください。
Windows SQL パッチを収集してください。 これを行うには、[Start] > [Programs] > [Microsoft SQL Server] 7.0 <Version> > [Query Analyzer] の順に選択します。
select @@version と入力し、クエリを実行します(上部の中央にある緑色の矢印)。
Windows パッチを収集してください。 これを行うには、[Start] > [Run] を選択し、c:\sti\stiver を入力します。