<!DOCTYPE html>
<html lang="en">
<head>
    

    <title>Apache Jena - TDB Configuration</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.1b17c39a117e22b46db4c66f6395dc27c134a60377d87d2d5745b8600eb69722.css" integrity="sha256-GxfDmhF&#43;IrRttMZvY5XcJ8E0pgN32H0tV0W4YA62lyI=">
    <link rel="shortcut icon" href="/images/favicon.ico" />
    
</head>

<body>

<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <a class="navbar-brand" href="/index.html">
                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
        </div>

        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                <li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
                <li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">Tutorials</li>
                        <li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a class="dropdown-item"  href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/sparql.html">SPARQL tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">References</li>
                        <li><a class="dropdown-item"  href="/documentation/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a class="dropdown-item"  href="/documentation/io/">RDF I/O</a></li>
                        <li><a class="dropdown-item"  href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a class="dropdown-item"  href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/ontology/">Ontology API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a class="dropdown-item"  href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/text-query.html">Text Search</a></li>
                    </ul>
                </li>

                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
                    </ul>
                </li>
            </ul>
            <form class="d-flex" role="search" action="/search" method="GET">
                <div class="input-group">
                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search" style="width: 10rem;">
                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
                        <i class="bi-search"></i>
                    </button>
                </div>
            </form>
            <ul class="navbar-nav">
                <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html" title="Ask"><span class="bi-patch-question"></span><span class="text-body d-none d-xxl-inline"> Ask</span></a></li>

                <li class="nav-item dropdown">
                    <a href="#" title="Get involved" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span><span class="text-body d-none d-xxl-inline"> Get involved </span><b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
                        <li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">Project</li>
                        <li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
                        <li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
                        <li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
                        <li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
                        <li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
                        <li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
                        <li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">ASF</li>
                        <li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>
                
                
                
                
                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/tdb/configuration.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span><span class="text-body d-none d-xxl-inline"> Edit this page</span></a></li>
            </ul>
        </div>
    </div>
</nav>

<div class="container">
    <div class="row">
        <div class="col-md-12">
            
            <div id="breadcrumbs">
                





<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
    
    
        
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/documentation/tdb'>TDB</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item active">CONFIGURATION.HTML</li>
            
            
        
    
</ol>




            </div>
            <h1 class="title">TDB Configuration</h1>
            
            
<main class="d-flex flex-xl-row flex-column">
  
  <aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#setting-options">Setting Options</a>
      <ul>
        <li>
          <ul>
            <li><a href="#setting-from-the-command-line">Setting from the command line</a></li>
            <li><a href="#setting-with-java-system-properties">Setting with Java System properties</a></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#query-of-the-union-of-named-graphs">Query of the union of named graphs</a></li>
    <li><a href="#logging-query-execution">Logging Query Execution</a></li>
    <li><a href="#dataset-caching">Dataset Caching</a></li>
    <li><a href="#file-access-mode">File Access Mode</a></li>
    <li><a href="#tdb-configuration-symbols">TDB Configuration Symbols</a></li>
    <li><a href="#advanced-store-configuration">Advanced Store Configuration</a></li>
  </ul>
</nav>
  </aside>
  <article class="flex-column me-lg-4">
    <p>There are a number of configuration options that affect the
operation of TDB.</p>
<h2 id="setting-options">Setting Options</h2>
<p>Options can be set globally, through out the JVM, or on a per query
execution basis. TDB uses the same mechanism as
<a href="http://jena.sf.net/ARQ" title="http://jena.sf.net/ARQ">ARQ</a>.</p>
<p>There is a global context, which is give to each query
execution as it is created. Modifications to the global context
after the query execution is created are not seen by the query
execution. Modifications to the context of a single query execution
do not affect any other query execution nor the global context.</p>
<p>A context is a set of symbol/value pairs. Symbols are used created
internal to ARQ and TDB and accessed via Java constants. Values are
any Java object, together with the values <code>true</code> and <code>false</code>, which
are short for the constants of class <code>java.lang.Boolean</code>.</p>
<p>Setting globally:</p>
<pre><code> TDB.getContext().set(symbol, value) ;
</code></pre>
<p>Per query execution:</p>
<pre><code>try(QueryExecution qExec = QueryExecution.dataset(dataset)
            .query(query).set(ARQ.symLogExec,true).build() ) {
     ....
}
</code></pre>
<p>Setting for a query execution happens before any query compilation
or setup happens. Creation of a query execution object does not
compile the query, which happens when the appropriate <code>.exec</code>
method is called.</p>
<h4 id="setting-from-the-command-line">Setting from the command line</h4>
<p>Options can also set from the
<a href="commands.html#setting-options-from-the-command-line" title="TDB/Commands">command line</a>
with &ldquo;<code>--set</code>.</p>
<h4 id="setting-with-java-system-properties">Setting with Java System properties</h4>
<p>(TDB 0.8.5 and later)</p>
<p>Options can be set when invoking the JVM using the Java system
properties as set by &ldquo;<code>-D</code>&rdquo;.</p>
<h2 id="query-of-the-union-of-named-graphs">Query of the union of named graphs</h2>
<p>See <a href="datasets.html" title="TDB/Datasets">TDB/Datasets</a>.</p>
<h2 id="logging-query-execution">Logging Query Execution</h2>
<p>If the symbol &ldquo;<code>tdb:logExec</code>&rdquo; is set to &ldquo;true&rdquo;, and also the logger
<code>org.apache.jena.tdb.exec</code> is enabled from level &ldquo;info&rdquo;, then each
basic graph patterns is logged before execution. This pattern
logged is after substitution of variable values and after
optimization by the
<a href="optimizer.html" title="TDB/Optimizer">BGP optimizer</a>.</p>
<h2 id="dataset-caching">Dataset Caching</h2>
<p>(TDB 0.8.0 and later)</p>
<p>TDB caches datasets based on the location of the backing directory.
Within a single JVM, all attempts to create or open a dataset at a
particular location go through the same dataset (and same disk
caching). Therefore, an application can open the same location
several times in different places in the code and still get the
same underlying dataset for query and update.</p>
<p>Note that closing the dataset closes it everywhere (the opening
calls are not being reference counted).</p>
<h2 id="file-access-mode">File Access Mode</h2>
<p>The context symbol can be set to &ldquo;mapped&rdquo; or &ldquo;direct&rdquo;. Unset, or
the value &ldquo;default&rdquo;, ask TDB to use to make the choice based on
JVM. Leaving it to the default is <em>strongly</em> encouraged.</p>
<h2 id="tdb-configuration-symbols">TDB Configuration Symbols</h2>
<p>Configuration Symbols</p>
<table>
<thead>
<tr>
<th>Symbol</th>
<th>Java Constant</th>
<th>Effect</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>tdb:logExec</code></td>
<td><code>TDB.symLogExec</code></td>
<td>Log execution of BGPs. Set to &ldquo;true&rdquo; to enable. Must also enable the logger &ldquo;org.apache.jena.tdb.exec&rdquo;.</td>
<td>unset</td>
</tr>
<tr>
<td><code>tdb:unionDefaultGraph</code></td>
<td><code>TDB.symUnionDefaultGraph</code></td>
<td>Query patterns on the default graph match against the union of the named graphs.</td>
<td>unset</td>
</tr>
<tr>
<td><code>tdb:fileMode</code></td>
<td><code>SystemTDB.fileMode</code></td>
<td>Force use of memory mapped files (<code>&quot;mapped&quot;</code>) or direct file caching (<code>&quot;direct&quot;</code>). See discussion of TDB on 32 or 64 bit hardware, especially limitations of memory mapped files on 32 bit Java.</td>
<td>Set by the system based on 32 or 64 bit java.</td>
</tr>
</tbody>
</table>
<h2 id="advanced-store-configuration">Advanced Store Configuration</h2>
<p>Various internal caching sizes can be set to different values to the
defaults. See the <a href="store-parameters.html">full description</a>.</p>

  </article>
  
  <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#setting-options">Setting Options</a>
      <ul>
        <li>
          <ul>
            <li><a href="#setting-from-the-command-line">Setting from the command line</a></li>
            <li><a href="#setting-with-java-system-properties">Setting with Java System properties</a></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#query-of-the-union-of-named-graphs">Query of the union of named graphs</a></li>
    <li><a href="#logging-query-execution">Logging Query Execution</a></li>
    <li><a href="#dataset-caching">Dataset Caching</a></li>
    <li><a href="#file-access-mode">File Access Mode</a></li>
    <li><a href="#tdb-configuration-symbols">TDB Configuration Symbols</a></li>
    <li><a href="#advanced-store-configuration">Advanced Store Configuration</a></li>
  </ul>
</nav>
  </aside>
</main>

        </div>
    </div>
</div>

<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2024 The Apache Software Foundation, Licensed under the
            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        </p>
        <p>
            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
            The Apache Software Foundation.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>

<script src="/js/popper.min.js.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>

<script type="text/javascript">
(function() {
    'use strict'
    
    

    const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
    if (links !== undefined && links !== null) {
        for (const link of links) {
            
            link.classList.add('active')
            let parentElement = link.parentElement
            let count = 0
            const levelsLimit = 4
            
            
            
            
            
            while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
                if (parentElement.tagName === 'LI') {
                    
                    
                    
                    parentElement.querySelector('a:first-child').classList.add('active')
                }
                parentElement = parentElement.parentElement
                count++
            }
        }
    }
})()
</script>

</body>
</html>
