Hi Matthieu,

You shouldn't have such exception if you have just one thread with no
concurrency, so there should be something in your code. Could you remove
the sensitive data, namely name and value of fields, and post here the
piece of code that gets this exception?

Best Regards,

Luca Garulli
Founder & CEO
OrientDB <http://orientdb.com/>


On 8 March 2016 at 18:23, matthieu marseille <[email protected]>
wrote:

> Hi Hung,
>
> Unfortunately I cannot share the code due to project security reasons.
>
> To be more precise, we have a single thread with a *single* connection.
> After further investigations, we are in a part of the code where we have
> the following situation :
>
> 1. A -> B (read : vertex A is linked to B with an edge)
> 2. A&C -> B (now A and C are linked to B with one edge each)
> 3. update of B : this is where the exception is thrown.
>
> Is it clearer ?
>
>
> On Tuesday, March 8, 2016 at 5:02:45 PM UTC+1, Hung Tran wrote:
>>
>> Hi matthieu,
>>
>> What Michela said is exactly right. You will need to find it out, it is
>> not too hard to figure it out. From Studio, you could make a query to check
>> version of that row, your row version in your code should be smaller than
>> the row current version in your database at commit time, that's a reason
>> why you got this exception.
>>
>> With a single thread client, you may have two instances of the same row
>> loaded by different connections in your context, and one of your logic is
>> trying to persist the one with older version.
>>
>> Could you upload a sample code to duplicate the error here?
>>
>> My Best,
>> Hung Tran
>>
>> On Tuesday, March 8, 2016 at 6:47:48 PM UTC+7, matthieu marseille wrote:
>>>
>>> Hi all,
>>>
>>> You'll find attached to this post the full stack trace that we obtain
>>> while we are updating a Vertex in client/server mode, from a
>>> single-threaded client and no concurrent use of the DB (v2.1.10). DB engine
>>> transactions are turned on.
>>>
>>> Here is just the final exception trace that we got :
>>>
>>> Caused by:
>>> com.orientechnologies.orient.core.exception.OConcurrentModificationException:
>>> Cannot UPDATE the record #20:0 because the version is not the latest.
>>> Probably you are updating an old record or it has been modified by another
>>> user (db=v12 your=v10)
>>>     at
>>> com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.checkVersions(OVersionRecordConflictStrategy.java:55)
>>>     at
>>> com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.onUpdate(OVersionRecordConflictStrategy.java:42)
>>>     at
>>> com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkAndIncrementVersion(OAbstractPaginatedStorage.java:2394)
>>>     ...
>>>
>>> On our side, we guess that it might be a "reload" problem in the client
>>> cache. However, we expected not to have such an exception in our very
>>> simple use case.
>>>
>>> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to