- ベストアンサー
デッドロック
sqlserver2000に対してクライアントツール用に開発したAccess2000のadpファイルからデータの更新を行うと、以下のようなエラーが発生するのですが、どのような場合以下のエラーが発生するのかご意見を頂きたいと思います。 "トランザクション(プロセスID89)が、lockリソースでほかのプロセスとデッドロックしました。トランザクションがデッドロックの対象として選択されています。トランザクションを再実行してください。"
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
デッドロックとは、複数のプログラムがお互いの資源の解放を待ちあって、処理が進まない状態のことを言います。 例えば、下記の様なプログラムが有った場合、 ===== プログラム1 ===== 1.テーブルAをロック 2.テーブルBをロック 3.何らかの処理 4.テーブルBを解放 5.テーブルAを解放 ===== プログラム2 ===== 1.テーブルBをロック 2.テーブルAをロック 3.何らかの処理 4.テーブルAを解放 5.テーブルBを解放 プログラム1がテーブルAをロックし、同時にプログラム2がテーブルBをロックすると、プログラム1はプログラム2がテーブルBを解放するのを待ち、プログラム2はプログラム1がテーブルAを解放すのを待つので、処理が進みません。 詳しくは下記のサイトを参照して下さい。 http://www.microsoft.com/japan/msdn/sqlserver/columns/webtech/webtech3.asp http://www.atmarkit.co.jp/fnetwork/rensai/sql28/sql1.html
お礼
回答ありがとうございます。 大変わかりやすい説明で助かりました。