ekb/edb questions

13 views
Skip to first unread message

Michael Petritsch

unread,
Feb 14, 2013, 12:42:43 PM2/14/13
to openeng...@googlegroups.com
Hi,

I just saw that the PersistInterface has a performSanityChecks method that hasn't been implemented yet (with a todo comment leading to [1]). What kind of checks are you planning to do there?

Something that would be nice would be a version check of committed engsbmodels. Currently it is possible that two users can query a certain version of a model, manipulate some fields and commit it which leads to a lost update.

Another question: is there some way to make business transactions? E.g. to ensure consistency when we have a workflow rule that commits to several domains with some logic in between these commits.

thanks and br


[1] http://issues.openengsb.org/jira/browse/OPENENGSB-2717

Felix Mayerhuber

unread,
Feb 14, 2013, 5:51:57 PM2/14/13
to openeng...@googlegroups.com
Hi Michael,

about the sanity checks: The checks that are planned here are validity
checks for models that shall be persisted (e.g. "if property A is bigger
than x then property B must be smaller than y" ... things like that).
manual:
http://requirements.openengsb.org/confluence/display/MANUAL/.EKB+v3.0.0

about the version check: this is already implemented and should work.
There are integration tests that check this feature (this was part of my
bachelor thesis so I am quite sure about that ;) ). It is also written
in the manual that this feature is already present:
http://requirements.openengsb.org/confluence/display/MANUAL/.EDB+v3.0.0
/ Conflict Detection

Maybe some requirements of the version checker are not visited. For
example, is it possible that your models have no @OpenEngSBModelId defined?

Kind regards
Felix
> <http://issues.openengsb.org/jira/browse/OPENENGSB-2717>
>

Michael Petritsch

unread,
Feb 21, 2013, 11:47:04 AM2/21/13
to openeng...@googlegroups.com
Hi,

yes we have an OpenEngSBModelId defined.

I was occupied with the engsbupdate to version 23 and now that I am finished I have tried it again. Still getting lost updates. Here a simplified sample of what I am doing:

Edb initial state, 1 signal:
[EDB] oid=bla,edbVersion=1,modelField=value1

Now 2 different threads query the edb for the signal above. Each thread changes 'modelField'.

Now thread1 commits the following:
[THREAD_1_COMMIT] oid=bla,edbVersion=1,modelField=value2

resulting in the following edb state:
[EDB] oid=bla,edbVersion=2,modelField=value2

now thread2 commits its changes:
[THREAD_2_COMMIT] oid=bla,edbVersion=1,modelField=value3

resulting in the following edb state:
[EDB] oid=bla,edbVersion=3,modelField=value3

Now I also had a look at the Itests in EDBIT and I think the test testEKBConflictCommitEvent_shouldResolveInConflict() should test this, however I could not execute this test. When I am trying to run the itests I am getting the following error in karaf:
17:05:54,361 | ERROR | rint Extender: 1 | DomainProviderManager            | s.internal.DomainProviderManager  121 | 221 - org.openengsb.framework.services - 3.0.0.cdlflex-23 | Bundle org.openengsb.domain.OOSourceCode [51] has an invalid Domain interface. It must be derived from org.openengsb.core.api.Domain
17:05:54,380 | ERROR | rint Extender: 1 | DomainProviderManager            | s.internal.DomainProviderManager  121 | 221 - org.openengsb.framework.services - 3.0.0.cdlflex-23 | Bundle org.openengsb.domain.SQLCode [67] has an invalid Domain interface. It must be derived from org.openengsb.core.api.Domain

Looking at the code leads me to AbstractEDBService and there is a boolean called 'revisionCheckEnabled' and this is also set to true. Any other idea why it might not work? How can I get the itests to run?

br



--
You received this message because you are subscribed to the Google Groups "OpenEngSB user group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openengsb-user+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



Michael Petritsch

unread,
Feb 21, 2013, 1:08:21 PM2/21/13
to openeng...@googlegroups.com
Hi,

ok sorry I have found the actual problem.

Somewhere along the way the queried signals lost the edbVersion field.

So everything is working fine. An EDBCheckException is thrown now. Still if you know how to get the engsb itests to run it would be very much appreciated.

br

Andreas Pieber

unread,
Feb 22, 2013, 8:51:57 AM2/22/13
to OpenEngSB
He Michael,

A) I'm happy that it's working again
B) Can you create an issue for the itest with an exact description what needs to be done where?

Thanks and kind regards,
Andreas


To unsubscribe from this group and stop receiving emails from it, send an email to openengsb-use...@googlegroups.com.

Michael Petritsch

unread,
Feb 25, 2013, 4:12:29 PM2/25/13
to openeng...@googlegroups.com
Hi Andreas,

I've created the issue for the itests [1]. If you need more details let me know please.

thanks and br

[1] http://issues.openengsb.org/jira/browse/OPENENGSB-3528
Reply all
Reply to author
Forward
0 new messages