国産DIコンテナSeasar その15at TECH国産DIコンテナSeasar その15 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト209:デフォルトの名無しさん 09/05/27 05:59:32 >>196ありがとう 楽観的ロックでは、1つのトランザクションで複数のテーブルまたは複数のレコードを更新する際には、 デッドロックやそれに伴うデータの不整合になる危険性がある。したがって、1つのトランザクションで 1つのテーブルと1つのレコードを更新する事によりデッドロックの回避が可能になりますが、 これに基づいてDB設計と画面設計は相当慎重に行うべきである。また、S2Daoの排他制御は楽観的ロックなんで、 標準的なDaoクラスでDriverManager.getConnection().setAutoCommit(false)の設定をして SelectForUpdateによる悲観的ロックを採用した方がシンプルでいいかもしれないね。 加えて、1つのトランザクションで複数のテーブルまたは複数のレコードを更新するケースでは、 rollbackを行えば、データの不整合は改善されるが、Webシステムで更新順序によるデッドロックの回避が できるのかについては、現時点では僕の把握ではできないと思ってる。 210:デフォルトの名無しさん 09/05/27 06:15:43 >>209の追加 要約すると、 ・1つのテーブルと1つのレコードを更新する仕様にする(デッドロックが起きないケース) ・デッドロックが起きた際には、rollbackよって回復する(デッドロックをrollbackによって回復するケース) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch