国産DIコンテナSeasar その15at TECH国産DIコンテナSeasar その15 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト169:デフォルトの名無しさん 09/05/25 02:36:38 カンファレンスにキシダタンでないかなぁ 170:デフォルトの名無しさん 09/05/25 02:40:23 >>168の訂正 失礼、ActionクラスからselectしDTOからActionFormに詰め替え際に、VersionNoあるいはTimestampもActionFormにsetする。 データベース更新時は、ActionFormからDTOに詰め替えする際に、select時に取得したVersionNoあるいはTimestampを DTOに設定する事で、画面単位での排他制御が実現できる。 171:デフォルトの名無しさん 09/05/25 03:07:04 これができていないWebシステムはゴミだ。 172:デフォルトの名無しさん 09/05/25 03:29:32 若干混乱したので要約すると、 >>167○この概念はSeasarの公式にも書かれているので正しい 僕はJavaそしてSeasarを推薦するよ。S2Daoについて、僕が解りやすく説明するよ? VersionNoでの排他制御に関しては、PrimaryKeyに属する行の内容を更新する際に、 VersionNoが自分の取得したVersionNoと異なるケースでは、他のユーザーが同じ行を先に更新している事になるので、正確な排他ができる。 Timestampでの排他制御に関しては、PrimaryKeyに属する行の内容を更新する際に、 Timestampが自分の取得したTimestampと異なるケースでは、他のユーザーが同じ行を先に更新している事になるので、正確な排他ができる。 Webシステムにおいては、多数の人が同時に同じDBにアクセスする事になるので、排他制御が抜けているシステムは致命的になる。 >>168×これは僕の認識の誤りである可能性が高い しかしながら、S2Daoの排他制御は不完全である。 理想としては、画面表示のselect時にVersionNoとTimestampを取得する仕様が好ましい。 今のS2Dao仕様では、Daoレベルでのデータベース更新の瞬間的な排他制御はできる。 そうではなくて、画面表示のselect時にVersionNoとTimestampを取得し、 「画面単位」で排他制御を行うのが正しい。S2Daoの排他制御もまた素人臭い。 >>170○S2Daoの振る舞いが以下の使用に適合していれば、理想的な排他制御になる。検証してみなければ解らないが、暫定でできると仮定。 失礼、ActionクラスからselectしDTOからActionFormに詰め替え際に、VersionNoあるいはTimestampもActionFormにsetする。 データベース更新時は、ActionFormからDTOに詰め替えする際に、select時に取得したVersionNoあるいはTimestampを DTOに設定する事で、画面単位での排他制御が実現できる。 >>171○ゴミです これができていないWebシステムはゴミだ。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch