cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marc Gabriel-Willem" <>
Subject Optimistic locking
Date Tue, 10 Apr 2007 15:20:22 GMT


I have some trouble with the optimistic locking function.

I set the 'optimistic locking' option to an ObjEntity and moreover I set
an attribute as "used for locking".


I'm in a web environment.


When I do some modification in a DataObject, the 'log' displayed by
Cayenne displays properly the query using the attribute for locking

But, when a concurrent client modifies the 'same' DataObject, no error
is detected ... because the new value for the optimistic check is used.


It is important to note that the DataObject is modified by different
browser (so different session data context) and by different child data
context ! 




My original record > attr1=MyAttr1, attr2=10:15:10

My record modified by client #1> attr1=MyAttr2,
attr2(UseForLock)=10:18:15 [ attrSpecifiedInWhereClause: 10:15:10 ]

My record modified by client #2> attr1=MyAttr3,
attr2(UseForLock)=10:19:40 [ attrSpecifiedInWhereClause: 10:18:15 ]


The value of the attribute used for optimistic locking seems to be


Thank you,


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message