Am 10.07.2012 09:51, schrieb ben ben:
> I use CDO on a SQLServer database.
What CDO version is it?
> I don't use CDO side user authentication.
>
> I have 2 clients (different computers), each client has their own session and transaction.
>
> Once I commit with one client, other client's application freezes and never comes back.
Does it happen in debug mode, too? Can you post the stack traces of all relevant threads?
Am 10.07.2012 17:36, schrieb Alex Lagarde:
> Hi Ben and Eike,
>
> couldn't it be related to this issue described here
> http://www.eclipse.org/forums/index.php/m/876427/?srch=deadlock#msg_876427 ?
Yes, I think that's definitely possible. Handing model access to a different thread while holding the view lock is a bad
idea.
basically, if you're launching runnables in the UIThread in syncExec
from code that can be called when model changes (e.g. inside an
Adapter), then there will be a deadlock between the Invalidation thread
and others. If you're in that case, Using asyncExec() instead fixes the
issue.
Am 05.02.2013 14:29, schrieb ben ben:
> Eike & Alex you were right !!!!
>
> The problem was coming from the UI operations that I executed in transaction listeners.
>
> Doing this in an UIJob solves the issue ! Thanks for your precious help.
>
> A last question, passive update is now working but it seems that my bindings are not automatically notified once data
> has changed. If I rebind (or re-read from model), modifications are properly propagated.
>
> Do I need to implement some CDOAdapters to solve this ?
Not necessarily. In most cases this does the trick: transaction.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL);