Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] Transaction Notification Issue
[CDO] Transaction Notification Issue [message #1714372] Thu, 12 November 2015 09:22 Go to next message
Samuel Leisering is currently offline Samuel LeiseringFriend
Messages: 34
Registered: July 2014
Member
Hi

We encountered an issue with the notifications of transactions,

Some Clients are connected to the CDO Server, and every Client does some stuff like opening/closing transactions, reading and writing from and to the server.
The Server recieves around 30 commits/sec, sometimes more, sometimes less. Everything is ok performance-wise.

If another Client connects to the Server it *may* happen after some time that the client gets in a state where the
waitForUpdate(timeStamp, 10000);
in
CDOTransactionImpl.commit
*always* gets a timeout on every commit. Because of this, every commit runs for at least 10 seconds. The Data however is commited instantly, and every other client gets an appropriate notification.

We suspected some Performance Issue at this point, but on further inspection in turnes out that this client gets no notifications whatsoever.

Closing the session and transaction and recreating them has no effect, only restarting the client completely works (until it happens again).

We use CDO 4.4, and the Clients connect with a ReconnectingSessionConfiguration. The transactions have the options
    transaction.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL);
    transaction.options().setInvalidationNotificationEnabled(true);


Greetings,
Samuel
Re: [CDO] Transaction Notification Issue [message #1717107 is a reply to message #1714372] Wed, 09 December 2015 22:43 Go to previous message
Stephane  Fournier is currently offline Stephane FournierFriend
Messages: 299
Registered: July 2009
Senior Member
Hi Samuel,
I figured out this issue:

In my case, it only happens when you perform a commit within a CDO invalidation notification i.e your transaction is updating with remote changes (commit from a remote client i.e another JVM) and due to the change policy you set to ALL , it can notify eAdapters registered on your CDO Objects that leads to another commit.

To avoid the waitForUpdate(10s) you need to post the eAdapters() implementation that leads to another commit on another thread not the CDOInvalidationOne.

Hope it helps.

Samuel Leisering wrote on Thu, 12 November 2015 04:22
Hi

We encountered an issue with the notifications of transactions,

Some Clients are connected to the CDO Server, and every Client does some stuff like opening/closing transactions, reading and writing from and to the server.
The Server recieves around 30 commits/sec, sometimes more, sometimes less. Everything is ok performance-wise.

If another Client connects to the Server it *may* happen after some time that the client gets in a state where the
waitForUpdate(timeStamp, 10000);
in
CDOTransactionImpl.commit
*always* gets a timeout on every commit. Because of this, every commit runs for at least 10 seconds. The Data however is commited instantly, and every other client gets an appropriate notification.

We suspected some Performance Issue at this point, but on further inspection in turnes out that this client gets no notifications whatsoever.

Closing the session and transaction and recreating them has no effect, only restarting the client completely works (until it happens again).

We use CDO 4.4, and the Clients connect with a ReconnectingSessionConfiguration. The transactions have the options
    transaction.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL);
    transaction.options().setInvalidationNotificationEnabled(true);


Greetings,
Samuel
Previous Topic:Serializing EMF objects to StringBuffer
Next Topic:EMF parsed xml file skips xml stylesheet tag
Goto Forum:
  


Current Time: Mon Jun 18 17:03:44 GMT 2018

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

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

Back to the top