[CDO] Conflict resolution [message #647141] |
Tue, 04 January 2011 18:04 |
saurav sarkar 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
My Blog http://codifyit.blogspot.com/
Follow me: http://twitter.com/sauravs
|
|
|
Re: [CDO] Conflict resolution [message #647159 is a reply to message #647141] |
Tue, 04 January 2011 19:38 |
|
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
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
|
|
|
Powered by
FUDForum. Page generated in 0.03057 seconds