Java、接続プール用の c3p0、データベース用の SQL Server 2005 を使用してアプリを開発しています。私の質問は、データベースでトランザクションを行うときに他の接続をブロックする方法はありますか? たとえば、データベースにレコードを挿入する場合、同じテーブルにレコードを挿入しようとした別の接続は、最初の接続が正常に終了するまで待機します...
ありがとう
Java、接続プール用の c3p0、データベース用の SQL Server 2005 を使用してアプリを開発しています。私の質問は、データベースでトランザクションを行うときに他の接続をブロックする方法はありますか? たとえば、データベースにレコードを挿入する場合、同じテーブルにレコードを挿入しようとした別の接続は、最初の接続が正常に終了するまで待機します...
ありがとう
接続を必要とするトランザクションに対して、接続の分離レベルを設定できます。最も制限的なのは SERIALIZABLE です。他の接続を「ブロック」しようとしないでください。
テーブルをロックしたい。SQL サーバーはこれを自動的に行います。ただし、クエリ オプションを使用して を制御できます。http://msdn.microsoft.com/en-us/library/aa213039(v=sql.80).aspx 排他ロックが必要なようです
排他ロック
排他 (X) ロックは、同時トランザクションによるリソースへのアクセスを防ぎます。他のトランザクションは、排他 (X) ロックでロックされたデータを読み取ったり変更したりできません。