[Seasar-user:10534] Re: [S2Dao]Timestampの排他について
Minoru Taki
[E-MAIL ADDRESS DELETED]
2007年 9月 14日 (金) 17:20:46 JST
瀧です。
お返事ありがとうございます。(JUNDUさん、本間さん)
> intとして+1しているだけですから、
> 0 → 正のMAX → 負のMAX → 0 という感じでサイクリックになる
> と思います。
VersionNoがサイクリックになれば、心配事の一つは消えます。
ですが、DB設計として、Timestamp→VersionNoに変更すると
更新時刻がなくなり、データのトレーサビリティが欠けるため、
業務データとしてUPDATE_DATEみたいな更新時刻のカラムを
さらに追加したいなと考えますが、
結局、そのプロパティを自動的に更新したいなと思うと、
(排他用でなく)TIMESTAMPアノテーションを利用できないか
と考えたりします。(Timestamp,VersionNo併用ってできます?)
#つまるところ、やっぱりNTPで同期してTIMESTAMPのみにしようかなと・・・(堂々巡り)
----- Original Message -----
From: "Hirotaka HONMA" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Friday, September 14, 2007 4:33 PM
Subject: [Seasar-user:10532] Re: [S2Dao]Timestampの排他について
> 本間です。
>
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内