You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Diptendu Dutta <du...@gmail.com> on 2020/03/02 16:13:23 UTC

Error org.apache.jena.tdb.transaction.TDBTransactionException: Not in a transaction

I have the following code

public class JenaProcessor {

static Dataset dataset = null;
static String ns = "http://www.lke.com/lke.owl#";

static {
try {
dataset = TDBFactory.createDataset("C:\\Users\\Diptendu\\Desktop\\lke");
}
catch(Exception ex) {
ex.printStackTrace();
}
}

static public void clearKnowledgeGraph(String corpus_file_id) {
dataset.begin(ReadWrite.WRITE) ;
Model model = null;
try {
model = dataset.getNamedModel(corpus_file_id);
model.removeAll();
dataset.commit();
if( model != null ) model.close();
}
catch(Exception ex) {
ex.printStackTrace();
}
finally {
       dataset.end();
}
}
}

model.close() is causing the error TDBTransactionException: Not in a
transaction

org.apache.jena.tdb.transaction.TDBTransactionException: Not in a
transaction
at
org.apache.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:138)
at
org.apache.jena.tdb.transaction.DatasetGraphTransaction.getDatasetGraphToQuery(DatasetGraphTransaction.java:84)
at
org.apache.jena.tdb.store.GraphTxnTDB.getDatasetGraphTDB(GraphTxnTDB.java:51)
at org.apache.jena.tdb.store.GraphTDB.sync(GraphTDB.java:128)
at org.apache.jena.tdb.store.GraphTDB.close(GraphTDB.java:133)
at org.apache.jena.rdf.model.impl.ModelCom.close(ModelCom.java:1494)
at knowledgegraph.JenaProcessor.clearKnowledgeGraph(JenaProcessor.java:120)

What do I need to do?

Regards,

Diptendu Dutta

Re: Error org.apache.jena.tdb.transaction.TDBTransactionException: Not in a transaction

Posted by Diptendu Dutta <du...@gmail.com>.
Thanks for the prompt answer.



On Mon 2 Mar, 2020 11:34 pm Rob Vesse, <rv...@dotnetrdf.org> wrote:

> It's because you are trying to close the model after you've committed the
> transaction so the error message is quite correct in that you are no longer
> in a transaction at that point
>
> Put the dataset.commit() after the model.close() line and it will work
>
> Rob
>
> On 02/03/2020, 16:16, "Diptendu Dutta" <du...@gmail.com> wrote:
>
>     I have the following code
>
>     public class JenaProcessor {
>
>     static Dataset dataset = null;
>     static String ns = "http://www.lke.com/lke.owl#";
>
>     static {
>     try {
>     dataset =
> TDBFactory.createDataset("C:\\Users\\Diptendu\\Desktop\\lke");
>     }
>     catch(Exception ex) {
>     ex.printStackTrace();
>     }
>     }
>
>     static public void clearKnowledgeGraph(String corpus_file_id) {
>     dataset.begin(ReadWrite.WRITE) ;
>     Model model = null;
>     try {
>     model = dataset.getNamedModel(corpus_file_id);
>     model.removeAll();
>     dataset.commit();
>     if( model != null ) model.close();
>     }
>     catch(Exception ex) {
>     ex.printStackTrace();
>     }
>     finally {
>            dataset.end();
>     }
>     }
>     }
>
>     model.close() is causing the error TDBTransactionException: Not in a
>     transaction
>
>     org.apache.jena.tdb.transaction.TDBTransactionException: Not in a
>     transaction
>     at
>
> org.apache.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:138)
>     at
>
> org.apache.jena.tdb.transaction.DatasetGraphTransaction.getDatasetGraphToQuery(DatasetGraphTransaction.java:84)
>     at
>
> org.apache.jena.tdb.store.GraphTxnTDB.getDatasetGraphTDB(GraphTxnTDB.java:51)
>     at org.apache.jena.tdb.store.GraphTDB.sync(GraphTDB.java:128)
>     at org.apache.jena.tdb.store.GraphTDB.close(GraphTDB.java:133)
>     at org.apache.jena.rdf.model.impl.ModelCom.close(ModelCom.java:1494)
>     at
> knowledgegraph.JenaProcessor.clearKnowledgeGraph(JenaProcessor.java:120)
>
>     What do I need to do?
>
>     Regards,
>
>     Diptendu Dutta
>
>
>
>
>
>

Re: Error org.apache.jena.tdb.transaction.TDBTransactionException: Not in a transaction

Posted by Rob Vesse <rv...@dotnetrdf.org>.
It's because you are trying to close the model after you've committed the transaction so the error message is quite correct in that you are no longer in a transaction at that point

Put the dataset.commit() after the model.close() line and it will work

Rob

On 02/03/2020, 16:16, "Diptendu Dutta" <du...@gmail.com> wrote:

    I have the following code
    
    public class JenaProcessor {
    
    static Dataset dataset = null;
    static String ns = "http://www.lke.com/lke.owl#";
    
    static {
    try {
    dataset = TDBFactory.createDataset("C:\\Users\\Diptendu\\Desktop\\lke");
    }
    catch(Exception ex) {
    ex.printStackTrace();
    }
    }
    
    static public void clearKnowledgeGraph(String corpus_file_id) {
    dataset.begin(ReadWrite.WRITE) ;
    Model model = null;
    try {
    model = dataset.getNamedModel(corpus_file_id);
    model.removeAll();
    dataset.commit();
    if( model != null ) model.close();
    }
    catch(Exception ex) {
    ex.printStackTrace();
    }
    finally {
           dataset.end();
    }
    }
    }
    
    model.close() is causing the error TDBTransactionException: Not in a
    transaction
    
    org.apache.jena.tdb.transaction.TDBTransactionException: Not in a
    transaction
    at
    org.apache.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:138)
    at
    org.apache.jena.tdb.transaction.DatasetGraphTransaction.getDatasetGraphToQuery(DatasetGraphTransaction.java:84)
    at
    org.apache.jena.tdb.store.GraphTxnTDB.getDatasetGraphTDB(GraphTxnTDB.java:51)
    at org.apache.jena.tdb.store.GraphTDB.sync(GraphTDB.java:128)
    at org.apache.jena.tdb.store.GraphTDB.close(GraphTDB.java:133)
    at org.apache.jena.rdf.model.impl.ModelCom.close(ModelCom.java:1494)
    at knowledgegraph.JenaProcessor.clearKnowledgeGraph(JenaProcessor.java:120)
    
    What do I need to do?
    
    Regards,
    
    Diptendu Dutta