[Seasar-user:10532] Re: [S2Dao]Timestampの排他について
Hirotaka HONMA
[E-MAIL ADDRESS DELETED]
2007年 9月 14日 (金) 16:33:03 JST
本間です。
on Fri, 14 Sep 2007 16:14:30 +0900
in [Seasar-user:10530] [S2Dao]Timestampの排他について
"Minoru Taki" <[E-MAIL ADDRESS DELETED]> wrote:
> S2DaoのTimestampの排他でふと気付いたのですが、
> 自動生成の更新のSQLではnew java.sql.Timestamp(long)を
> Beanのプロパティにセットする仕様のようですが、、
> これはプロセスが動作しているシステム時間を表しますよね?
はい。
> 同一サーバ内で動作しているなら問題がなさそうですが、
> APサーバとDBが違うサーバだったり、APサーバがクラスター構成だった場合は
> 厳密な話でいえば完全な排他とは言えないと思います。
> #・・・かといって、直ちに問題がでるかは別ですが。
はい。
まあ複数台構成へ話を広げなくても、1台だけでも同一timestampは
起こりえますので、
> Timestampをnewするのではなく、SQLでSYSTIMESTAMP(Oracleのみ?)を
> 設定するのであれば問題がない気がしますが、実装できたとしても
> 元のBeanに更新時刻を返すには、再検索せねばならないですよね?
>
> やはり、推奨されるVersionNoでの管理が良いのでしょうか?
versionNoを推奨します、となります。
タイムスタンプをDBから取るにしても、同時だとやはり排他が効か
ないでしょうし。
> #VersionNoの場合いろいろと心配事が・・・。
> VersionNoの場合、VersionNoが桁のMax値に到達した場合は、
> どうなるでしょうか?
> (サイクリックになる?)
intとして+1しているだけですから、
0 → 正のMAX → 負のMAX → 0 という感じでサイクリックになる
と思います。
Seasar-user メーリングリストの案内