[seasar-dotnet:787] Re: Timestampによる排他制御について

Masafumi Teraoka [E-MAIL ADDRESS DELETED]
2008年 3月 7日 (金) 11:57:41 JST


宮城さん

早速の返信ありがとうございます。
OracleのTimestamp型をTIMESTAMP(9)に変更しましたが、
やはり、NotSingleRowUpdatedRuntimeExceptionが発生します。

私が使用しているデータプロバイダはSystem.Data.OracleClientだからでしょうか?


----- Original Message ----- 
From: <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Friday, March 07, 2008 11:40 AM
Subject: [seasar-dotnet:786] Re:Timestampによる排他制御について


> 宮城です。
> 
>> Timestampによる自動排他制御を利用しているのですが、
>> Oracleの排他対象項目をDATE型からTIMESTAMP(6)に変更すると、
>> NotSingleRowUpdatedRuntimeExceptionが発生します。
> 
> TIMESTAMP(7)に変更してみてください。
> 寺岡さんの御指摘どおり、ミリ秒のデータが切り捨てられているのが原因と思います。
> 詳しくは、
> http://s2dao.net.seasar.org/ja/entity.html
> 「ODP.NET使用時のTimestampカラムの型」
> の章の参照をお願いします。
> 
>> お世話になっております、寺岡と申します。
>>
>> 現在S2Dao.NET 1.3.6を使用させて頂いております。
>>
>> Timestampによる自動排他制御を利用しているのですが、
>> Oracleの排他対象項目をDATE型からTIMESTAMP(6)に変更すると、
>> NotSingleRowUpdatedRuntimeExceptionが発生します。
>>
>> ・BookEntityクラスを作成し、BOOKテーブルにマッピングしています。
>> ・BookEntityで<TimestampProperty("UpdateDt")>属性を使用しUpdateDtを排他対象項目としています。
>> ・UpdateDtはDatetime型です。
>> --DDL
>> CREATE TABLE SQLWIN.BOOK
>> (
>> ID VARCHAR2(2) NOT NULL,
>> NM VARCHAR2(10) NOT NULL,
>> UPDATE_DT TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
>> CONSTRAINT PK_BOOK PRIMARY KEY (ID)
>> )
>>
>>
>> ミリ秒単位の不一致で排他エラーが発生しているのかなと思うのですが、
>> Oracle側のUPDATE_DTが08-03-07 11:00:50.984000の場合、
>> UpdateDt.Millisecond=984となっているので一致していると思われるのですが。
>>
>> アドバイスいただけないでしょうか?
>> 宜しくお願い致します。
>>
>> 以上
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内