Community
Participate
Working Groups
Build Identifier: i want to use CDOObject.cdoPrefetch(). For models with a large count of objects i got a TimeoutException. Is there any configuration that must be set to use this function or can i raise the timeout? org.eclipse.emf.cdo.common.util.TransportException: java.util.concurrent.TimeoutException at org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientProtocol.send(CDOClientProtocol.java:404) at org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientProtocol.send(CDOClientProtocol.java:429) at org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientProtocol.loadRevisions(CDOClientProtocol.java:159) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.loadRevisions(CDORevisionManagerImpl.java:352) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevisions(CDORevisionManagerImpl.java:263) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevision(CDORevisionManagerImpl.java:246) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevision(CDORevisionManagerImpl.java:239) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevision(CDORevisionManagerImpl.java:1) at org.eclipse.emf.internal.cdo.view.CDOViewImpl.prefetchRevisions(CDOViewImpl.java:361) at org.eclipse.emf.internal.cdo.view.CDOViewImpl.prefetchRevisions(CDOViewImpl.java:355) at org.eclipse.emf.internal.cdo.CDOObjectImpl.cdoPrefetch(CDOObjectImpl.java:159) Reproducible: Always
I use CDO 4.0 with a DBStore (MySQL) and a horizontalAuditWithRanges mapping.
I will try to make use of the network monitoring framework (RequestWithMonitoring). Unlikely that I have time during the Eclipse Summit this week...
Moving all open enhancement requests to 4.1
Moving all open issues to 4.2. Open bugs can be ported to 4.1 maintenance after they've been fixed in master.
Moving all outstanding enhancements to 4.3
Moving all open enhancement requests to 4.4
Moving all open bugzillas to 4.5.
Moving all unaddressed bugzillas to 4.6.
Moving all open bugs to 4.7
This is an issue for me as well. Currently we need to do a pretty deep .prefetch() to achieve the performance that we need. However, with default timeout we get a TimeoutException. We can of cause avoid this by increasing the timeout but it would be nice to solve it in another way. I made some early tests by just changing LoadRevisionsRequest and LoadRevisionsIndication to implement CDOClientRequestWithMonitoring and CDOServerReadIndicationWithMonitoring, respectively. This worked in some cases, but I received at least one "revision == null, ObjectNotFoundException" from AbstractCDOView, so I guess that there are more things in play here. Eike, are there any obvious pitfalls here? Something obvious that I have missed?
Moving all unresolved issues to version 4.8-
Moving all unresolved issues to version 4.9
Moving to 4.13.
New Gerrit change created: https://git.eclipse.org/r/c/cdo/cdo/+/185928
As I stumbled upon this problem as well, I did an attempt to solve this using the suggested RequestWithMonitoring. We have used the contents of the Gerrit I just pushed (https://git.eclipse.org/r/c/cdo/cdo/+/185928) in production environment the last year, without problems. (I think we CDO version 4.7 was used). Please review.
I'll come to this issue very soon because one of my clients also saw the timeouts. I also had the idea with RequestWithMonitoring, but i'd like to make sure that the 99% case of revision loading with just 1 revision does not pay the price...
The changes are committed: https://git.eclipse.org/c/cdo/cdo.git/commit/?id=ae07fc3c71c3795255ea76f4d63996024cf91f74
Sorry, the previous link to the commit is from the corresponding Net4j enhancement (Bug 576596: Give signal indications the ability to reset the request timeout). The commit of this enhancement is: https://git.eclipse.org/c/cdo/cdo.git/commit/?id=5fb964e0ad863c78ed31e6d83d845bd8ef6b6871
Please see also bug 576893 "Implement a CDOPrefetcherManager to prefetch and cache all valid revisions for a CDOViewSet". If you're interested you can study a working example in: CDOCheckoutImpl.startPrefetcherManager() CDOCheckoutImpl.stopPrefetcherManager() THis functionality is exposed to the user in the checkout properties page.