Look like I needed to add a model=dataset.getDefaultModel() statement to
the commit block os that it reads:


if (cnt % 500 == 0) {

    System.out.println( cnt );

    dataset.commit();

    dataset.begin( ReadWrite.WRITE );

    model=dataset.getDefaultModel();

  }

Why?  I would expect that the model would track the transaction set on the
dataset.


Claude


On Mon, May 26, 2014 at 3:48 PM, Claude Warren <[email protected]> wrote:

> 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
>



-- 
I like: Like Like - The likeliest place on the web<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren

Reply via email to