On 29/03/12 13:39, Bill Roberts wrote:
Hi there

Just experimenting with ways of loading data into Fuseki (now 0.2.1 
distribution version from 16 March).

Have been loading some data with the HTTP graph protocol.  Then stopped Fuseki 
and loaded another graph using tdbloader (0.9.0).  Then started fuseki.  Trying 
to access the data I loaded via tdbloader gave an exception:

Extract of stacktrace:

13:23:24 ERROR TDB                  :: 
ObjectFileStorage.read[nodes.dat](314300772)[filesize=317885149][file.size()=317885149]:
 Impossibly large object : 825376256 bytes>  filesize-(loc+SizeOfInt)=3584373
13:23:24 ERROR BindingTDB           :: get1(?ds)
com.hp.hpl.jena.tdb.base.file.FileException: 
ObjectFileStorage.read[nodes.dat](314300772)[filesize=317885149][file.size()=317885149]:
 Impossibly large object : 825376256 bytes>  filesize-(loc+SizeOfInt)=3584373
        at 
com.hp.hpl.jena.tdb.base.objectfile.ObjectFileStorage.read(ObjectFileStorage.java:319)
        at com.hp.hpl.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:72)
        at 
com.hp.hpl.jena.tdb.nodetable.NodeTableNative.readNodeFromTable(NodeTableNative.java:176)
        at 
com.hp.hpl.jena.tdb.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:100)
        at 
com.hp.hpl.jena.tdb.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:71)
        at 
com.hp.hpl.jena.tdb.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:103)
        at 
com.hp.hpl.jena.tdb.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:74)
        at 
com.hp.hpl.jena.tdb.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:55)
        at 
com.hp.hpl.jena.tdb.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:67)
        at 
com.hp.hpl.jena.tdb.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:55)
        at com.hp.hpl.jena.tdb.solver.BindingTDB.get1(BindingTDB.java:123)

Am I doing something wrong here?  Is there something unsafe about mixing 
tdbloader and graph protocol loading?

No - it is safe to mix usages providing you let Fuseki stop at a quiet point. There may be outstanding committed transactions that would integrated on next Fuseki start-up.

(or run tdbrecovery -- that flushes the transaction log to the main database).

The bulk loader on an existing database does not do anything special but you must let it finish cleanly.

Is this related to the data from your last message?

        Andy

Reply via email to