Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] Conflict resolution
[CDO] Conflict resolution [message #647141] Tue, 04 January 2011 18:04 Go to next message
saurav sarkar is currently offline saurav sarkarFriend
Messages: 428
Registered: July 2009
Senior Member
Hi ,

My question is on the conflict resolution part.
Below is my scenario and understanding.

Lets say i have my repository server on System A.I have two clients one on
Client 1(System B) and another Client 2 on System C.Both the Clients have
embedded server which connects to the repository server.

Client1 opens a connection on repo server.Gets the Object A and starts working
on it.

Now Client2 opens up a connection to the repo server.Gets the same object A
and start working on it.

Client1 commits it changes and when Client2 wants to commit he gets the
conflict error.

Now my question is how does the Conlflict resolver for the repository
understands that there is a conlifct ?.

Is a local copy of the repo object is being passed when the object
is fetched from the repository ?.If yes then how the local object's state is
compared/merged with the repo copy ?

Thanks and Regards,
Saurav


Re: [CDO] Conflict resolution [message #647159 is a reply to message #647141] Tue, 04 January 2011 19:38 Go to previous message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6682
Registered: July 2009
Senior Member
Am 04.01.2011 19:04, schrieb saurav:
> Hi ,
>
> My question is on the conflict resolution part.
> Below is my scenario and understanding.
>
> Lets say i have my repository server on System A.I have two clients one on Client 1(System B) and another Client 2 on System C.
Ok, 1 server, 2 clients.

> Both the Clients have embedded server which connects to the repository server.
What are embedded servers? They could embed a CDO repository server but these would not connect to the "server server". Or are you talking about offline replication?

>
> Client1 opens a connection on repo server.Gets the Object A and starts working
> on it.
>
> Now Client2 opens up a connection to the repo server.Gets the same object A
> and start working on it.
>
> Client1 commits it changes
Let's call that time t1.

> and when Client2 wants to commit he gets the conflict error.
When Client2 tries to commit, yes. But if Client2 has passive updates enabled (the default) it could get aware of the unability to commit already at t1.

>
> Now my question is how does the Conlflict resolver for the repository understands that there is a conlifct ?.
There is no conflict resolver *in* a repository.

CDOConflictResolver is an interface on the client that you may implement (or use one of our implementations) and plug in your local CDOTransaction. Whenever passive updates from the server indicate that the local dirty state is conflicting they get a chance to resolve the conflicts.

But on the server there is a conflict detection as kind of a last line of defense and to protect against network race conditions. It can only reject entire commits, but not resolve particular conflicts.

>
> Is a local copy of the repo object is being passed when the object
> is fetched from the repository ?.
I don't understand what "a local copy of the repo object" should be.

> If yes then how the local object's state is
> compared/merged with the repo copy ?
Maybe I understand this question when the former one is clear ;-)

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper


Previous Topic:[CDO/Teneo/Hibernate] Removing object from cross resource containment together with its resource (in
Next Topic:Problem with referencing resources when updating the referenced resource
Goto Forum:
  


Current Time: Thu Apr 25 12:38:15 GMT 2024

Powered by FUDForum. Page generated in 0.03057 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top