MSSQLトランザクションデッドロックエラー
問題
DotNetNukeイベントログに次のようなエラーが表示される場合があります。
原因
この問題は、2つのSQLコマンドがまったく同じで実行され、まったく同じデータを異なる方法で変更する必要がある場合に発生します。これにより、両方のSQLコマンドがもう一方のSQLコマンドの実行が終了するのを待機し、「無限の待機ループ」が発生します。次に、SQLサーバーは無限待機ループを検出し、SQLコマンドの1つを終了します。この問題は通常、大量のデータを含む使用率の高いWebサイト(ドキュメントリポジトリ、ショッピングカート、フォーラムなど)でのみ発生します。
解決策
解決策については、モジュールベンダーに問い合わせる必要があります。問題が頻繁に発生している場合は、テクニカルサポートに連絡して、エラーの原因となっているモジュールに関する情報を提供できる場合があります。
MS SQLのパフォーマンスの問題を診断する場合、技術者はDataWizardをお勧めします。このツールは、ControlSuiteのSQLAnalyzerツールを介して専用サーバークライアントが利用できます。
Plesk
問題
DotNetNukeイベントログに次のようなエラーが表示される場合があります。
Transaction (Process ID ##) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
原因
この問題は、2つのSQLコマンドがまったく同じで実行され、まったく同じデータを異なる方法で変更する必要がある場合に発生します。これにより、両方のSQLコマンドがもう一方のSQLコマンドの実行が終了するのを待機し、「無限の待機ループ」が発生します。次に、SQLサーバーは無限待機ループを検出し、SQLコマンドの1つを終了します。この問題は通常、大量のデータを含む使用率の高いWebサイト(ドキュメントリポジトリ、ショッピングカート、フォーラムなど)でのみ発生します。
解決策
解決策については、モジュールベンダーに問い合わせる必要があります。問題が頻繁に発生している場合は、テクニカルサポートに連絡して、エラーの原因となっているモジュールに関する情報を提供できる場合があります。
MS SQLのパフォーマンスの問題を診断する場合、技術者はDataWizardをお勧めします。このツールは、ControlSuiteのSQLAnalyzerツールを介して専用サーバークライアントが利用できます。