On 03/03/14 11:35, Jean-Marc Vanel wrote:
2014-02-21 18:03 GMT+01:00 Andy Seaborne <[email protected]>:
...
  I need some advice about debugging, like displaying dataset, graph,
journal
status, or adding assertions, or whatever is possible. I'm willing to
contribute to make TDB more robust by providing repeatable situations.

Another question is : how to repair a broken TDB ?


Attempt to start up TDB once, ignore any errors - this commits any pending
but complete transactions in the journal.  The last one about Checksum
error reading should be the last transaction and it's not really committed
from an external recovery point of view.

Exit, then delete the journal file.


Is this what tdbrecovery does ?
The help is not explicit :
  java -cp $JAR tdb.tdbrecovery --help

yes - just runs journal recovery (that run anyway everytime you start TDB).

neither is :
java -cp $JAR tdb.tdbclean --help

no - that deletes files.


Restart.  Take a separate backup.


  Or maybe the question is : can a TDB be broken at all, or is it my bad
application code that repeatedly creates similar problems?


If you run two copies of your code at the same time, then you will break
the database.

===>
  This is likely to happen, since this is a GUI application;
I'll have to prevent several concurrent starts.

Yes - you'll have to make sure only one JVM is using a given location at the same time.

If you want to share a copy of TDB database between different JVMs, the thing to do is to use Fuseki as a "database server" - that shares the database safely across different clients.

        Andy

Reply via email to