Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [EMFClient] Advice on merging 3 ex CDO exported models
[EMFClient] Advice on merging 3 ex CDO exported models [message #1434133] |
Mon, 29 September 2014 14:16  |
Eclipse User |
|
|
|
Hi,
We have serious problem with CDO, it corrupts the DBStore at random,
test cases pass. Eike thinks this might be a multi threading bug. But
given the support for this complex bug is impossible to get now we have
no choice other than to use EMFStore.
We modified CDO libraries to ignore the corrupted parts of the model
instance and have managed to export our 3 CDO repositories to xmi files.
Can someone explain how we might load them into EMFStore and merge these
model instances, the actual model is consistent and they have a common
parent model instance.
My thoughts were to somehow (howw do we load xmi into EMFStore?) the
common parent model instance into EMFStore. Then import each of our
derived model instance from xmi file to a branch each then merge those
branches. There are collectively several hundred hours of work in these
models.
Thx
David
|
|
| |
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1434537 is a reply to message #1434522] |
Tue, 30 September 2014 04:06   |
Eclipse User |
|
|
|
Hi,
The 3 models are the same, the 3 model instances ( i.e. model data) all derive from a single parent model instance. They should not have any overlapping model objects across these 3 model instances.
We want to merge these 3 model instances to end up with one model instance containing all objects from all 3 source model instances.
The issue with CDO is after a variable amount of time it causes a corruption, it does not seem to be associated with our code, because it is at random which model class is being persisted at the time of the corruption, we do not use multi threading, we use our GUI design tool 1 to 1 to a single DbStore on H2. We are not aware of the corruption at the time we save the model, i.e. it saves. There are other times it fails to save, but that does not seem to cause an issue, it recovers.
Eike asked us to provide a test case, but they pass in general. Although a test class that copies the model will fail consistently once a repo is corrupted. Eike no longer has time to investigate, even when offered paid consulting, he has access to the corrupted repos on a google drive, but no time to look at them. Commits on CDO have really fallen off since the end of May. At this stage I think CDO is no longer tenable as a project, I have a raised the issues in the EMF forum, they remain unresolved. Not being able to provide a test case that shows the process that causes corruption means I cannot raise a bug. So we are trapped, with hundreds of hours of modelling work in corrupted CDO repos. We are just trying to recover the situation. EMFStore is our destination. As a startup and being so dependent on CDO this has been a massive problem.
|
|
|
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1434584 is a reply to message #1434537] |
Tue, 30 September 2014 05:37   |
Eclipse User |
|
|
|
Hi David,
how were those three instances divided? If there are no common,
overlapping model elements, how should they be combined? Is there a
common containment structure, elements should be put in? Depending on
your case, I think it might be fairly simple to programmatically combine
the models, especially if there is no overlapping.
The merging algorithm of EMF Store works change-based. In your case, you
are comparing states (without having the history available), so it will
not solve your case.
Best regards
Jonas
Am 30.09.2014 10:06, schrieb David Wynter:
> Hi,
>
> The 3 models are the same, the 3 model instances ( i.e. model data) all
> derive from a single parent model instance. They should not have any
> overlapping model objects across these 3 model instances.
> We want to merge these 3 model instances to end up with one model
> instance containing all objects from all 3 source model instances.
>
> The issue with CDO is after a variable amount of time it causes a
> corruption, it does not seem to be associated with our code, because it
> is at random which model class is being persisted at the time of the
> corruption, we do not use multi threading, we use our GUI design tool 1
> to 1 to a single DbStore on H2. We are not aware of the corruption at
> the time we save the model, i.e. it saves. There are other times it
> fails to save, but that does not seem to cause an issue, it recovers.
> Eike asked us to provide a test case, but they pass in general. Although
> a test class that copies the model will fail consistently once a repo is
> corrupted. Eike no longer has time to investigate, even when offered
> paid consulting, he has access to the corrupted repos on a google drive,
> but no time to look at them. Commits on CDO have really fallen off since
> the end of May. At this stage I think CDO is no longer tenable as a
> project, I have a raised the issues in the EMF forum, they remain
> unresolved. Not being able to provide a test case that shows the process
> that causes corruption means I cannot raise a bug. So we are trapped,
> with hundreds of hours of modelling work in corrupted CDO repos. We are
> just trying to recover the situation. EMFStore is our destination. As a
> startup and being so dependent on CDO this has been a massive problem.
|
|
|
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1434803 is a reply to message #1434584] |
Tue, 30 September 2014 12:19   |
Eclipse User |
|
|
|
Hi,
To answer each in turn.
"how were those three instances divided? If there are no common,
overlapping model elements, how should they be combined?" As I stated there is a common parent, since branching there are no common overlapping model elements,
but of course all 3 have all the same original model elements.
I now have the makeithappen EMFClient running with our ecore model registered. I try to Import a project, delighted to see it is xmi format. But it runs for about 10 minutes on each of our 3 model instances in xmi and then fails without any console message and no error message.
I found the log, now attached.
Console output
Configuration location:
file:/Users/david/Documents/workspace/.metadata/.plugins/org.eclipse.pde.core/ECP View and Domain Model Editor/
Configuration file:
file:/Users/david/Documents/workspace/.metadata/.plugins/org.eclipse.pde.core/ECP View and Domain Model Editor/config.ini loaded
Install location:
file:/Users/david/eclipse/
Framework located:
file:/Users/david/eclipse/plugins/org.eclipse.osgi_3.9.1.v20140110-1610.jar
Framework classpath:
file:/Users/david/eclipse/plugins/org.eclipse.osgi_3.9.1.v20140110-1610.jar
Splash location:
null
Debug options:
file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/.options not found
Time to load bundles: 1335
Starting application: 5640
UIProviderDescriptor: org.eclipse.emf.ecp.emfstore.ui [27] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.emfstore.ui_1.4.0.20140916-1322.jar
UIProviderDescriptor: org.eclipse.emf.ecp.workspace.ui [97] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.workspace.ui_1.4.0.20140916-1322.jar
Loading ECPProjectManagerImpl from /Users/david/Documents/runtime-ECPViewModelAndDomainEditor/.metadata/.plugins/org.eclipse.emf.ecp.core/projects
ProviderDescriptor: org.eclipse.emf.ecp.emfstore.core [130] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.emfstore.core_1.4.0.20140916-1322.jar
ProviderDescriptor: org.eclipse.emf.ecp.workspace.core [181] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.workspace.core_1.4.0.20140916-1322.jar
Loading ECPRepositoryManagerImpl from /Users/david/Documents/runtime-ECPViewModelAndDomainEditor/.metadata/.plugins/org.eclipse.emf.ecp.core/repositories
RepositoryDescriptor: org.eclipse.emf.ecp.emfstore.ui [27] --> file:/Users/david/eclipse/Eclipse.app/Contents/MacOS/plugins/org.eclipse.emf.ecp.emfstore.ui_1.4.0.20140916-1322.jar
Application Started: 10614
...
No location provider or error while instantiating location provider, switching to default location!
Property file read. (/Users/david/.emfstore/server/profiles/demoClient/./conf/es.properties)
Server data home location: /Users/david/.emfstore/server/profiles/demoClient/
JVM Max Memory: 1,037 MByte
Couldn't load password file from path: /Users/david/.emfstore/server/profiles/demoClient/./conf/user.properties
Using WebServerProvider class org.eclipse.emf.emfstore.internal.server.connection.xmlrpc.XmlRpcBuiltinWebServer at port 8080
Started XML RPC Webserver on port: 8080
Notifying post startup listener
Initialitation COMPLETE.
Server is RUNNING...Time to relax...
Resource save options initialized:
USE_ENCODED_ATTRIBUTE_STYLE: true
USE_CACHED_LOOKUP_TABLE: []
ENCODING: UTF-8
FLUSH_THRESHOLD: 100000
USE_FILE_BUFFER: true
Attachment: log
(Size: 373.63KB, Downloaded 164 times)
[Updated on: Tue, 30 September 2014 12:30] by Moderator
|
|
| | | | | | | | | | | |
Re: [EMFClient] Advice on merging 3 ex CDO exported models [message #1438814 is a reply to message #1438772] |
Mon, 06 October 2014 10:37  |
Eclipse User |
|
|
|
Hi,
yes it exspects exactly one root element. If you look at the method
ECPImportHandlerHelper#importFile (bundle: org.eclipse.emf.ecp.ui)
you see, how it processes the file. It would be easy to adapt this to
multiple root elements.
Best regards
Jonas
Am 06.10.2014 15:19, schrieb David Wynter:
> Hi,
>
> Tried that, it works to a point. It looks like you need a single element
> at root level under the <xmi:XMI xmi:version="2.0"
> xmlns:xmi="http://www.omg.org/XMI"
> xmlns:edmmodel="http://www.yambina.com/edmmodel">
> top element. We have lots of peer elements at the same level in the
> hierarchy under xmi:XMI and it only imports the first of these into the
> Project.
>
> I added a top level element <parent></parent> under the xmi:XMI element
> that contains all my model elements as children. But this does not seem
> to load anything. Is there documentation on what EMFClient expects in th
> exmi file for it to successfully load an xmi file?
>
>
|
|
|
Goto Forum:
Current Time: Wed Jul 23 13:47:34 EDT 2025
Powered by FUDForum. Page generated in 0.12134 seconds
|