On 20/11/12 18:50, Emmanuelle wrote:
Hi again,
It's fixed I think. I was reading the model before starting the transaction...
Sorry for the inconvenience.
Good to hear you've identified the issue.
"compatibility mode" - if you don't use transactions, you need to MRSW
lock properly.
Andy
On Tue, Nov 20, 2012 at 6:30 PM, Emmanuelle <[email protected]> wrote:
Hi all,
I'm currently working on my master thesis that's related to tracking
students activities to provide adapted services and recommendations to
help their learning. I have implemented an ontology using Protege and
loaded it into a TDB directory. The ontology models students, learning
resources and stores the activity of the students on those resources
at a learning platform. In the background, the learning platform sends
those events to the ontology using a webservice interface implemented
in Axis which is the one accessing the TDB ontology for reading and
writing.
I started to stress test sending concurrent requests to the webservice
and I'm getting concurrency errors as follow:
java.util.ConcurrentModificationException: Reader = 3, Writer = 1
at
com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:157)
at
com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:152)
at
com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.checkConcurrency(DatasetControlMRSW.java:79)
at
com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.startRead(DatasetControlMRSW.java:46)
......
(versions listed at the end of this note)
I understand that jena-TDB handles transactions and I'm using it in my
code, and on the other side, that the axis2 webservice is using a
single JVM with multiple threads (I hope not to be wrong on that one)
but it seems that TDB doesn't lock the dataset for writing. Can you
please confirm? Should I take care of locking?
I've been searching this list and the internet for similar problems, I
have found several posts but couldn't find a solution for it. I'm new
to semantic web technologies, it's the first time I'm using jena and
TDB so probably I've missed something. Any help will be greatly
appreciated.
Thanks in advance,
Emmanuelle
Versions:
I've tried to update to jena-2.7.4 + tdb-0.9.4 but was getting errors
in tomcat with them so I gave up.
- jena-core-2.7.0-incubating
- jena-tdb-0.9.0-incubating
- pellet 2.3.0
- java version "1.6.0_35":
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
- tomcat5.5.35
- axis2 1.5.6