You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by bu...@apache.org on 2014/09/04 23:28:57 UTC

svn commit: r921261 - in /websites/staging/jena/trunk/content: ./ documentation/tdb/faqs.html

Author: buildbot
Date: Thu Sep  4 21:28:57 2014
New Revision: 921261

Log:
Staging update by buildbot for jena

Modified:
    websites/staging/jena/trunk/content/   (props changed)
    websites/staging/jena/trunk/content/documentation/tdb/faqs.html

Propchange: websites/staging/jena/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Sep  4 21:28:57 2014
@@ -1 +1 @@
-1622416
+1622566

Modified: websites/staging/jena/trunk/content/documentation/tdb/faqs.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/tdb/faqs.html (original)
+++ websites/staging/jena/trunk/content/documentation/tdb/faqs.html Thu Sep  4 21:28:57 2014
@@ -156,6 +156,7 @@
 <li><a href="#ssd">Should I use a SSD?</a></li>
 <li><a href="#lock-exception">Why do I get the exception <em>Can't open database at location /path/to/db as it is already locked by the process with PID 1234</em> when trying to open a TDB database?</a></li>
 <li><a href="#no-lock-warning">I see a warning that <em>Location /path/to/db was not locked, if another JVM accessed this location simultaneously data corruption may have occurred</em> in my logs?</a></li>
+<li><a href="#windows-dataset-delete">Why can't I delete a dataset (MS Windows/64 bit)?</a></li>
 </ul>
 <p><a name="transactions"></a></p>
 <h2 id="does-tdb-support-transactions">Does TDB support transactions?</h2>
@@ -259,6 +260,20 @@ the other process is not accessing the T
 database was eligible to be locked but wasn't.  This can usually only occur if you circumvented the normal TDB database opening procedures somehow.</p>
 <p>As the warning states data corruption may occur if another JVM accesses the location while your process is accessing it.  Ideally you should follow the
 advice on <a href="#multi-jvm">multi-JVM usage</a> if this might happen, otherwise the warning can likely be safely ignored.</p>
+<h2 id="windows-dataset-delete">Deleting Datasets on MS Windows</h2>
+<p>Java on MS Windows does not provide the ability to delete a memory mapped
+file while the JVM is still running.  The file is properly deleted when the
+JVM exits.  This is a known issue with Java.<br />
+See the Java bug database e.g. 
+<a href="http://bugs.java.com/view_bug.do?bug_id=4724038">Bug id: 4724038</a> and several
+others. While there are some workarounds mentioned on the web, 
+none is known to always work on all JVMs.</p>
+<p>On 64 bit systems, TDB uses memory mapped to manage datasets on disk.  This
+means that the operating system dynamically controls how much of a file is held in
+RAM, trading off against requests by other applications.  But it also means
+the database files are not properly deleted until the JVM exits.  A new
+dataset can not be created in the same location (directory on disk).</p>
+<p>The workaround is to use a different location.</p>
   </div>
 </div>