- - PR -
サーブレット+JSP処理のロック
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-07-12 16:55
現在、jsp+サーブレット+bean でデータベースを表示、編集、更新するプログラムを作成しています。
その中で、DBのロックについてお聞きしたいことがあります。 処理の基本的な流れとしては、 DB表示サーブレット ↓ DB表示JSP ↓ 編集したいレコードのキー情報をFORMで送信 ↓ DB編集サーブレットでキー情報からレコードを検索 ↓ DB編集JSPで編集画面表示 ↓ データ編集、決定、編集内容をFORMですべて送信 ↓ DB更新サーブレットでFORMから受け取った内容をDBに更新。 このなかで編集から更新までをロックしたいと思うのですが なにか良い方法はありますでしょうか? 初歩的な質問かもしれませんがよろしくお願いいたします。 |
|
投稿日時: 2005-07-12 17:21
「悲観的ロック」「楽観的ロック」で検索してみると、いろいろ情報が得られますよ。
|
|
投稿日時: 2005-07-12 19:17
テーブルに編集可能フラグを付けるとか・・・
編集内容を取得する時に、 ・編集可能フラグが「可能」なら「不可能」に更新してから取得 ・編集可能フラグが「不可能」ならエラー ってな具合でできませんかね。 WEBアプリで実装する場合、ステートレスなので 例えば編集中のままログアウト処理をしないでブラウザを落としたら・・・等 考えなければいけない点が沢山あります。 トランザクションを有効にしたコネクションをセッションに格納して、 コネクションかセッションがタイムアウトするか、 編集が完了するまでコミットしないって方法も・・・ 悲観的ロックにこだわり過ぎて、上記のような複雑な実装に依存するよりも 楽観的ロックでも問題のない設計を行うほうがいいと思いますが。 |
|
投稿日時: 2005-07-13 14:16
なるほど途中で閉じた場合などの考慮も必要になってくるんですね・・
楽観的ロックで一度詳しく調べてみます。 ご返答ありがとうございました。感謝です。m(__)m |
|
投稿日時: 2005-07-13 14:53
EJBデザインパターンの「version number」も参考になると思います。
|
|
投稿日時: 2005-07-13 15:20
悲観的ロックと楽観的ロックのどちらがいいかは要件次第です。
さんざん時間をかけて入力したものがエラーになるという事態がちょくちょく起こるような アプリケーションじゃ使えないですよね。 |
|
投稿日時: 2005-07-13 21:30
ukさんの仰るとおり、要件次第で正解なんてないというか、
顧客の満足が得られればそれが正解ですよね。 ちなみに、テーブルに対してフラグを付けるという案を出しましたが、 さらに有効期限も設けて、その有効期限内であるかを判定すれば、 所有権を握ったままログアウトしないで終了した場合などには対処可能だと思います。 この辺も結局は要件次第ですね。 |
1