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" <dutta.dipte...@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