[FIX] tempdb 使用中に DTC トランザクションを中止すると、7105 エラー、アサーション、および場合によっては SQL Server のシャットダウンが発生する

この記事は、以前は次の ID で公開されていました: JP304847
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
BUG #: 355018 (SHILOH_BUGS)
現象
Microsoft 分散トランザクション コーディネータ (DTC) トランザクションを tempdb がアクティブな間に中止すると、7105 エラー、リテール アサーションが発生し、場合によっては tempdb でのロールバック中に失敗し、サーバーがシャットダウンすることがあります。
解決方法
この問題を解決するには、Microsoft SQL Server 2000 の最新の Service Pack を入手します。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
290211 最新の SQL Server 2000 Service Pack の入手方法

修正プログラム

: 次の修正プログラムは、Microsoft SQL Server 2000 Service Pack 2 がリリースされる前に作成されました。

修正プログラム (英語版) のファイル属性は次のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。
   バージョン     ファイル名      プラットフォーム   -------------------------------------   8.00.430    Sqlservr.exe    i386				
: ファイルの依存関係のため、上記のファイルを含む最新の修正プログラムや機能にその他のファイルが含まれる場合もあります。

回避策
この問題は、アプリケーションの分散トランザクションのタイムアウトによって、DTC マネージャがトランザクションを中止する場合に発生します。

この問題を回避するには、タイムアウトの原因を取り除くか、またはタイムアウト値を増加します。
状況
マイクロソフトでは、この問題を SQL Server 2000 の問題として認識しています。この問題は、Microsoft SQL Server 2000 Service Pack 2 で最初に修正されました。
詳細
エラー ログに表示される 7105 エラー メッセージは、以下のようなものです。
エラー : 7105、レベル : 22、状態 : 6 TEXT、NTEXT、または IMAGE ノードのページ (1:123232)、スロット 3 が存在しません。
この問題が発生する場合、以下の 1 つ以上のアサーション メッセージがエラー ログに記録されます (SQL Server 2000 製品版ビルド 194 に基づいています)。
SQL Server アサーション: ファイル : <SpcAlloc.cpp>、行=378 失敗したアサーション = "pPage->IsType (Page::TEXT_MIX_PAGE)"。
SQL Server アサーション: ファイル : <page.cpp>、行=2777 失敗したアサーション = "rowLength >= offset + deleteLength"。
SQL Server アサーション: ファイル : <logscan.cpp>、行=3037 失敗したアサーション = "m_lastLSN == NullLSN || startLSN < m_lastLSN"。
SQL Server アサーション: ファイル : <page.cpp>、行=3429 失敗したアサーション = "m_freeCnt + emptySlots * sizeof (Slot) >= spaceNeed"。
この問題が発生すると、エラー ログに次のエラー メッセージが記録されることもあります。
AllocPageFromTargetExtent failed: extId=1:357672 pages_seen=8
以下のアサーションが記録され、その後に SQL Server 内部のロック マネージャおよびテーブルの長いダンプが続きます。
SQL Server アサーション: ファイル : <alloc.cpp>、行=10649 失敗したアサーション = "force_success == FALSE"。
プロパティ

文書番号:304847 - 最終更新日: 01/16/2015 23:13:43 - リビジョン: 3.2

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbfix kbsqlserv2000presp2fix KB304847
フィードバック