[FIX] ASP.NET からトランザクション COM+ コンポーネントを呼び出す際の各種の問題

この記事は、以前は次の ID で公開されていました: JP318000
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
重要 : この資料には、レジストリの編集に関する情報が含まれています。レジストリを編集する前に、問題が発生した場合に備えて、レジストリの復元方法を理解しておいてください。復元方法の詳細については、Regedit.exe のヘルプ トピック「レジストリを復元する」、または Regedt32.exe のヘルプ トピック「レジストリ キーを復元する」を参照してください。
現象
ASP.NET からマネージ トランザクション COM+ コンポーネントまたはアンマネージ トランザクション COM+ コンポーネントを呼び出すと、アプリケーションで以下の問題が複数発生する可能性があります。
  • アクセス違反
  • メモリ リーク
  • ハンドル リーク
  • デッドロック
  • 処理速度の低下
原因
以下のいずれかの条件が成立すると、この現象が発生する可能性があります。
  • COM+ 1.0 の不具合が原因でデッドロック、メモリ リーク、およびハンドル リークが発生する。
  • COM+ 1.0 の 2 つの不具合が原因でアクセス違反が発生する。
  • MDAC 2.7 の不具合が原因で処理速度が低下する。
解決方法
Microsoft Windows 2000 製品の Web サーバー上で ASP.NET から COM+ コンポーネントを使用する場合、上記の問題を回避するには、記載されている順に次の方法を使用してください。
  • Windows 2000 Service Pack 2 (SP2) と COM+ 修正プログラム ロールアップ パッケージ 18.1 をインストールします。COM+ 修正プログラム ロールアップ パッケージ 18.1 を入手するには、Microsoft Product Support Services にお問い合わせください。Windows 2000 Service Pack 3 (SP3) のリリース時には、上記の修正が収録される予定です。COM+ Hotfix Rollup Package 18.1 の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    313582 Windows 2000 SP2 以降の COM+ 修正 ロールアップ パッケージ 18.1
  • 新しい COM+ STA スレッド プールをアクティブ化します。これを行うには、レジストリを次のように編集します。警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要です。マイクロソフトは、レジストリ エディタの誤用により発生した問題に関しては、一切責任を負わないものとします。レジストリ エディタは、自己の責任においてご使用ください。

    レジストリの編集方法の詳細については、レジストリ エディタ (Regedit.exe) のヘルプ トピック「キーと値の変更」、または Regedt32.exe のヘルプ トピック「レジストリ情報の追加と削除」と「レジストリ情報の編集」を参照してください。レジストリを編集する前にレジストリのバックアップを必ず作成してください。Windows NT または Windows 2000 を実行している場合、システム修復ディスク (ERD) も更新する必要があります。
    キー : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\STAThreadPool
    値の名前 : ActivateNewPool
    データ型 : REG_DWORD
    値のデータ : 1
    : この設定を有効にするには、コンピュータを再起動する必要があります。

  • : この設定を有効にするには、コンピュータを再起動する必要があります。SQL Server 2000 を使用している場合、SQL Server 2000 Service Pack 1 (SP1) またはそれ以降をインストールしてください。

    SQL Server 2000 の Service Pack の入手については、次のマイクロソフト Web サイトにアクセスしてください。
  • : この設定を有効にするには、コンピュータを再起動する必要があります。MDAC 2.7 の処理速度の問題に対する修正が必要な場合は、Microsoft Product Support Services にお問い合わせください。MDAC 2.7 SP1 のリリース時には、上記の修正が収められる予定です。
  • : この設定を有効にするには、コンピュータを再起動する必要があります。System.EnterpriseServices.ServicedComponent クラスから派生したオブジェクトに対して、明示的に Dispose メソッドを呼び出す必要があります。高負荷条件では、明示的に Dispose を呼び出さないと、ハンドルが解放されるまでにその数が 10,000 ~ 30,000 にまで増大します
状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。

これらの修正は、Windows 2000 SP3 と MDAC 2.7 SP1 で一般に公開される予定です。上述の Service Pack がリリースされる前に修正プログラムが必要な場合は、Microsoft Product Support Services までお問い合わせください。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 318000 (最終更新日 2002-04-20) をもとに作成したものです。

プロパティ

文書番号:318000 - 最終更新日: 02/24/2014 15:41:54 - リビジョン: 4.2

  • Microsoft COM+ 1.0
  • Microsoft ASP.NET (included with the .NET Framework)
  • Microsoft Data Access Components 2.7
  • Microsoft .NET Framework Service Pack 2
  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbbug kbcomservices kberrmsg kbfix kbperformance kbscalability KB318000
フィードバック