Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] How can we prevent TimeoutRuntimeException for large commits
[CDO] How can we prevent TimeoutRuntimeException for large commits [message #1851227] Thu, 31 March 2022 11:27 Go to next message
Robert Schulk is currently offline Robert SchulkFriend
Messages: 144
Registered: July 2015
Senior Member
In some cases, when performing a CDOTransaction#commit with many changes, we are seeing the attached exception.

I tried to recreate the problem in a test scenario, but was not able to do so. Is this expected behavior for large commits? Which timeout would I need to increase to prevent this problem?
Re: [CDO] How can we prevent TimeoutRuntimeException for large commits [message #1851262 is a reply to message #1851227] Fri, 01 April 2022 04:07 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6682
Registered: July 2009
Senior Member
As CommitTransactionRequest extends CDOClientRequestWithMonitoring the regular signal timeout is periodically reset as long as the progress monitors on both client and server are advanced periodically. Only when no progress is reported for a period longer than CDONet4jSession.Options.getCommitTimeout() the CommitTransactionRequest can fail with TimeoutRuntimeException. The default value of this timeout is 10 seconds. You can change it with CDONet4jSession.Options.setCommitTimeout(int).

Unfortunately the line numbers in your stack trace don't match the latest sources, so I can't comment on the actual operations in the server that seem to take longer. But I have the feeling it might be the "synchronized (commitTransactionLock)" in Repository.commit(). That would probably mean that another commit is spending more time in commitUnsynced().


Re: [CDO] How can we prevent TimeoutRuntimeException for large commits [message #1851271 is a reply to message #1851262] Fri, 01 April 2022 08:15 Go to previous messageGo to next message
Robert Schulk is currently offline Robert SchulkFriend
Messages: 144
Registered: July 2015
Senior Member
Thanks for the clarification! Increasing the timeout works for me. I was somewhat able to reproduce the exception on my test setup with the 2022-03 build.

The stacktrace is a bit different, but I attached it nevertheless. I also attached a cdo/net4j log that was printed to the console during the test.

Could it be a good idea to increase the commit timeout to a larger value by default? Maybe other users also experience the same issue...
Re: [CDO] How can we prevent TimeoutRuntimeException for large commits [message #1851275 is a reply to message #1851271] Fri, 01 April 2022 09:32 Go to previous message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6682
Registered: July 2009
Senior Member
Robert Schulk wrote on Fri, 01 April 2022 10:15
Could it be a good idea to increase the commit timeout to a larger value by default? Maybe other users also experience the same issue...


That would happen at the expense of waiting longer in case of "real" problems, e.g., dead locks.

I think a more appropriate solution would be to find a synchronization mechanism that is able to entertain the progress monitor while blocking...


Previous Topic:What Font Does Sample Ecore Editor Use?
Next Topic:Eclipse Indigo 3.7.2 Proxy Problem
Goto Forum:
  


Current Time: Fri Apr 26 21:42:53 GMT 2024

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

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

Back to the top