I have code that uses Jena-Libs 2.11.1 and executes the following block:
(edited for brevity)
dataset.begin( ReadWrite.WRITE);
try {
Model model = dataset.getDefaultModel();
Property[] props = ( create an array of properties in Model)
String dcsId = "someStringValue";
int cnt = 0;
..... (get an iterator on a set of rows from a db table)
while (rIter.hasNext())
{
cnt++;
Row r = rIter.next();
Resource eventR = model.createResource( makeURI( eventUri,
r.getColumn(dcsId).toString()), typeURI);
for (int i=0;i<cols.size();i++)
{
Object o = r.getColumn(i);
if (props[i] != null && o != null)
{
String val = o.toString();
if (val.length()>0)
{
eventR.addProperty( props[i], val); // <-- line 134 as noted
in call stack below
}
}
}
// commit every 500 entries
if (cnt % 500 == 0) {
System.out.println( cnt );
dataset.commit();
dataset.begin( ReadWrite.WRITE );
}
}
}
}
}
finally {
dataset.commit();
}
The table I am reading from contains several 10's of thousands of rows. I
am basically converting from relational table to RDF graph.
However, after the first 500 subjects are committed (5000 +/- triples) I
run into the following problem while adding the 6th property to subject
502.
DEBUG [main] (MySQLTableDef.java:261) - Query String: SELECT ... <--
Initial debugging statement
500 <-- output from commit block in code above
ERROR [main] (Log.java:94) - Not active: 1
ERROR [main] (Log.java:94) - **** Not active: 1
Now, I know this is a transaction error. But I think I have a transaction,
as I restart one right after the commit after the 500th record. Log is
made in the BlockMgrJournal.checkActive() and the call stack appears as
follows:
BlockMgrJournal.checkActive() line: 306
BlockMgrJournal._promote(Block) line: 220
BlockMgrJournal.promote(Block) line: 215
BPTreeRecordsMgr(PageBlockMgr<T>).promote(Page) line: 110
BPTreeRecords.promote() line: 119
BPTreeRecords.internalInsert(Record) line: 131
BPTreeNode.internalInsert(Record) line: 468
BPTreeNode.internalInsert(Record) line: 468
BPTreeNode.insert(BPTreeNode, Record) line: 212
BPlusTree.addAndReturnOld(Record) line: 328
BPlusTree.add(Record) line: 320
TupleIndexRecord.performAdd(Tuple<NodeId>) line: 60
TupleIndexRecord(TupleIndexBase).add(Tuple<NodeId>) line: 64
TupleTable.add(Tuple<NodeId>) line: 96
NodeTupleTableConcrete.addRow(Node...) line: 87
TripleTable.add(Node, Node, Node) line: 58
DatasetGraphTDB.addToDftGraph(Node, Node, Node) line: 100
DatasetGraphTDB(DatasetGraphTriplesQuads).add(Node, Node, Node, Node) line:
47
GraphTDB(GraphView).performAdd(Triple) line: 140
GraphTDB.performAdd(Triple) line: 87
GraphTDB(GraphBase).add(Triple) line: 202
ModelCom.add(Resource, Property, RDFNode) line: 1159
ModelCom.add(Resource, Property, String, String, boolean) line: 161
ModelCom.add(Resource, Property, String) line: 149
ResourceImpl.addProperty(Property, String) line: 241
JenaSink.updateTable(UpdateBlock) line: 134
Any help fixing this problem would be appreciated.
Claude
--
I like: Like Like - The likeliest place on the web<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren