Quantcast
Viewing all articles
Browse latest Browse all 5648

TDB shutdown does not release the files

Hi,

I am trying to delete the files in the location of a TDB dataset after I
used it, within the same process:

public static void main(String[] args) throws InterruptedException,
IOException {

File tdbDir = new File(System.getProperty("user.dir"),
"tdb1");
System.out.println("Size before: " + dirSize(tdbDir) /
1024 + " KB");

delete(tdbDir); // << this works
System.out.println("Size after delete 1: " + dirSize
(tdbDir) / 1024 + " KB");

tdbDir.mkdir();

Dataset ds = TDBFactory.createDataset
(tdbDir.getPath());
ds.close();
TDB.closedown();

Thread.sleep(5000);

// clean up

delete(tdbDir); // << this does NOT work

System.out.println("Size after delete 2: " + dirSize
(tdbDir) / 1024 + " KB");

//recursively delete a directory and all the files in it
public static void delete(File file) throws IOException {...}

//get the cumulative size of files in a directory
public static long dirSize(File file) throws IOException {...}

but I cannot delete all the files in the directory where the TDB dataset
resides. This is the output, when I run this repeatedly:

Size before: 196608 KB

File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GOSP.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GOSP.idn true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GPOS.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GPOS.idn true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GSPO.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GSPO.idn true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\node2id.dat
true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\node2id.idn
true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\OSP.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\OSP.idn true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\OSPG.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\OSPG.idn true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\POS.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\POS.idn true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\POSG.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\POSG.idn true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefix2id.dat
true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefix2id.idn
true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefixIdx.dat
true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefixIdx.idn
true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\SPO.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\SPO.idn true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\SPOG.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\SPOG.idn true
Directory is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1 true
Size after delete 1: 0 KB

File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GOSP.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GOSP.idn false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GPOS.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GPOS.idn false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GSPO.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\GSPO.idn false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\journal.jrnl
true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\node2id.dat
false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\node2id.idn
false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\nodes.dat true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\OSP.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\OSP.idn false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\OSPG.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\OSPG.idn false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\POS.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\POS.idn false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\POSG.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\POSG.idn false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefix2id.dat
false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefix2id.idn
false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefixes.dat
true
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefixIdx.dat
false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\prefixIdx.idn
false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\SPO.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\SPO.idn false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\SPOG.dat false
File is deleted : D:\workspace\JenaTutorial\JenaHello\tdb1\SPOG.idn false
Size after delete 2: 196608 KB

It seems that TDB is releasing the resources (locks on files?) only after
the JVM exits, and not when TDB.shutdown is called.

Am I doing something wrong?
What is the correct way to force TDB to release all resources and shutdown
completely, so that I can delete the directory where the data set is?

Thanks
Yoav

Yoav Tock
IBM Haifa Research Laboratory
Office: +972-4-829-6528
E-mail: tock [ at ] il.ibm.com

Viewing all articles
Browse latest Browse all 5648

Trending Articles