いつも、お世話になっております。
現在、ASP.NetとOracle9iでWebアプリケーションを開発しています。
現在、複数のユーザがほぼ同時に同一のデータに更新をかけられないよう
にする処理で悩んでいます。
今まで開発してきたシステムでは、各データに更新回数を持たして、
その数をチェックすることにより、同時に更新されることを防いできました。
具体的には、
ユーザA:データ取得(このときの更新回数X)
ユーザB:データ取得(このときの更新回数X)
(ユーザA,B共に画面などで、データ操作)
ユーザA:トランザクション開始
このとき、取得した更新回数を再度取得、X
ユーザAが先に取得したときと更新回数が同一のため、データは更新されていない。
データ更新処理を許可する
データ更新を行い、更新回数を+1する
コミット
ユーザB:トランザクション開始
このとき、取得した更新回数を再度取得、X+1
ユーザBが先に取得したときと更新回数が同一でないため、データは更新されている
データの更新は許可しない
ロールバック
という処理を行っています。
しかし、この方法では、ユーザAがデータ更新を行う直前でかつ、ユーザBが更新回数のチェックを行うというタイミングだと、ユーザBがデータの更新ができてしまうようです。
より安全に重複更新を避けたいのですが、良い手はございませんか?ご存知でしたら、教えていただけないでしょうか?宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
排他制御はそれぞれの業務により向き不向きがあるため、一概にこうした方がよい...とは言えないですが。
。。http://www.atmarkit.co.jp/fdotnet/entwebapp/entw …
# 自分であれば更新日時を保持し SELECT FOR UPDATE 使うかな
会社からログインできないので、返信が遅くなってしまいまいました。
@ITのページを参考にさせて頂きました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Excel(エクセル) ネットワーク上のエクセルとリンクしている時にデータ更新をvbaで、refresh Allで行う場合の 2 2023/04/10 05:39
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Excel(エクセル) 更新前と更新後の差分をVBAを使って抜き出したい 5 2023/06/01 14:35
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- Chrome(クローム) 最近のGoogle Chromeのデータ読み込みの遅延やエラーって頻発しますか? 2 2023/01/06 22:12
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
VBAでページ番号、ページ最終行...
-
DataGrdViewに関連付けたデータ...
-
Listviewのデータを上から順番...
-
GridViewにバインドせずにデー...
-
エクセルマクロ小数点桁数
-
.NET SqlDataReader のレコー...
-
DataGridViewで表示に制限をつ...
-
GASでスプレッドシートの一番上...
-
Excelのグラフがちらつい...
-
yahoo天気の過去1ヶ月分のデー...
-
ASP C# データベースから1行取得
-
VBAでActiveDirectoryのユーザ...
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
Excelのセルの色指定をVBAから...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
VB.NETで DataRow()を利用して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
DataGrdViewに関連付けたデータ...
-
Listviewのデータを上から順番...
-
GASでスプレッドシートの一番上...
-
GridViewにバインドせずにデー...
-
VBAでページ番号、ページ最終行...
-
.NET SqlDataReader のレコー...
-
MSFlexGridのデータ表示位置の設定
-
【ASP.NET MVC】一覧編集画面
-
DataGridViewで表示に制限をつ...
-
VBによる可変長ファイルの読み書き
-
エクセルマクロ小数点桁数
-
GoogleスプレッドシートからExc...
-
ListViewで条件によって表示を...
-
ACCESSのVBAで[Split]について
-
C# データ配列から画像を作成す...
-
ASP.Net ObjectDataSource
-
スプレッドシート 一括でQRコー...
-
ASP.NET DataGridの項目数(列...
-
GridViewを自動的にスクロール...
おすすめ情報