On 15/12/11 14:24, Nadav Hoze wrote:
I'm using jena TBD version version 0.8.5,  ARQ 2.8.3 and Jena 2.6.2.

April 2010.

I'm fairly sure this area has been cleaned up.


And I think your calculated guess could be right.

This is the code I use for opening connection to DB (i.e. obtaining model):
private void doOpenModel() {
         if (model != null) {
             doCloseModel();
         }
         model = TDBFactory.createModel(connectionString);

It's always better to use a dataset. The createModel and createGraph operations are likely to be deprecated in the next release.

The dataset is the unit at the storage layer so it gets messy if you have many named models.

IIRC back in 0.8.5, the model wasn't a proper database (but it's been a awhile since that release).

     }
And this is the code for closing the model:
private void doCloseModel() {
         logger.trace("Closing model.");
         TDB.sync(model);

"dataset" but otherwise this is the right thing to do.

         TDB.closedown();
         model.close();

Probably harmless but this is after the closedown.

  }

In between there are CRUD  operations and the doCloseModel() is always in 
finally block.

So maybe I'm doing something wrong  in the doCloseModel()?

Possibly age of the TDB version. Sorry I can't remember which version had which bugs as theer has been a lot of change - this was an area that was fixed but I can't recall (or reconstruct) which version it was.

        Andy


Thanks,




Nadav Hoze
Senior Software Engineer
dbMotion Ltd.
Direct: +972-9-7699000
Extension number: 9037
Mobile: 972-54-4821606
E-mail: [email protected]


-----Original Message-----
From: Andy Seaborne [mailto:[email protected]] On Behalf Of Andy 
Seaborne
Sent: Thursday, December 15, 2011 3:46 PM
To: [email protected]
Subject: Re: Got TDBException: Secondary index duplicate

Hi there,

A possible cause is not shutting the database down cleanly sometime earlier.  
Could that have happened?

(Transactions will help a lot here).

         Andy

PS Which version is this?

On 14/12/11 14:02, Nadav Hoze wrote:
Hi

I'm working with Jena TDB and my data storage is on a clustered data server.

I got this exception:

*com.hp.hpl.jena.tdb.TDBException: Secondary index duplicate: SPO->OSP
->  [[000000000063A94E], [0000000000000B52], [000000000063A98C]]*

at com.hp.hpl.jena.tdb.index.TupleTable.add(TupleTable.java:60)

at
com.hp.hpl.jena.tdb.nodetable.NodeTupleTable.addRow(NodeTupleTable.jav
a:56)

at com.hp.hpl.jena.tdb.store.TripleTable.add(TripleTable.java:45)

at
com.hp.hpl.jena.tdb.store.GraphTriplesTDB._performAdd(GraphTriplesTDB.
java:44)

at
com.hp.hpl.jena.tdb.store.GraphTDBBase.performAdd(GraphTDBBase.java:89
)

at
com.hp.hpl.jena.graph.impl.SimpleBulkUpdateHandler.add(SimpleBulkUpdat
eHandler.java:48)

at
com.hp.hpl.jena.graph.impl.SimpleBulkUpdateHandler.add(SimpleBulkUpdat
eHandler.java:44)

at com.hp.hpl.jena.rdf.model.impl.ModelCom.add(ModelCom.java:883)

There is no concurrency issues because the environment we work in is
not federated (i.e. no multiple clients calling jena).

I saw a post of Andy which implies that the datastore might be
inconsistent which worries me allot.

Can you provide some info why would this happen even though I never
encountered this and here we don't deal with multiple concurrent requests.

Could this happen let's say if data server was unavailable for a brief
moment ?

Really appreciate your help.

Thanks,

*Nadav Hoze*

Senior Software Engineer

dbMotion Ltd.

Direct: +972-9-7699000

Extension number: 9037

Mobile: 972-54-4821606

E-mail: [email protected]<mailto:[email protected]>_

Description: Logo + Tagline

This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. Please note that any disclosure, copying or
distribution of the content of this information is strictly forbidden.
If you have received this email message in error please notify its
sender and then delete it from your files.

This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity to whom they are addressed. 
Please note that any disclosure, copying or distribution of the content of this 
information is strictly forbidden. If you have received this email message in 
error please notify its sender and then delete it from your files.

Reply via email to