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

<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Apache TomEE</title>
	<meta name="description"
		  content="Apache TomEE is a lightweight, yet powerful, JavaEE Application server with feature rich tooling." />
	<meta name="keywords" content="tomee,asf,apache,javaee,jee,shade,embedded,test,junit,applicationcomposer,maven,arquillian" />
	<meta name="author" content="Luka Cvetinovic for Codrops" />
	<link rel="icon" href="../../favicon.ico">
	<link rel="icon"  type="image/png" href="../../favicon.png">
	<meta name="msapplication-TileColor" content="#80287a">
	<meta name="theme-color" content="#80287a">
	<link rel="stylesheet" type="text/css" href="../../css/normalize.css">
	<link rel="stylesheet" type="text/css" href="../../css/bootstrap.css">
	<link rel="stylesheet" type="text/css" href="../../css/owl.css">
	<link rel="stylesheet" type="text/css" href="../../css/animate.css">
	<link rel="stylesheet" type="text/css" href="../../fonts/font-awesome-4.1.0/css/font-awesome.min.css">
	<link rel="stylesheet" type="text/css" href="../../fonts/eleganticons/et-icons.css">
	<link rel="stylesheet" type="text/css" href="../../css/jqtree.css">
	<link rel="stylesheet" type="text/css" href="../../css/idea.css">
	<link rel="stylesheet" type="text/css" href="../../css/cardio.css">

	<script type="text/javascript">

      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-2717626-1']);
      _gaq.push(['_setDomainName', 'apache.org']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

    </script>
</head>

<body>
    <div class="preloader">
		<img src="../../img/loader.gif" alt="Preloader image">
	</div>
	    <nav class="navbar">
		<div class="container">
		  <div class="row">          <div class="col-md-12">

			<!-- Brand and toggle get grouped for better mobile display -->
			<div class="navbar-header">
				<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
					<span class="sr-only">Toggle navigation</span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
				</button>
				<a class="navbar-brand" href="/">
				    <span>

				    
                        <img src="../../img/logo-active.png">
                    

                    </span>
				    Apache TomEE
                </a>
			</div>
			<!-- Collect the nav links, forms, and other content for toggling -->
			<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
				<ul class="nav navbar-nav navbar-right main-nav">
					<li><a href="../../docs.html">Documentation</a></li>
					<li><a href="../../community/index.html">Community</a></li>
					<li><a href="../../security/index.html">Security</a></li>
					<li><a href="../../download-ng.html">Downloads</a></li>
				</ul>
			</div>
			<!-- /.navbar-collapse -->
		   </div></div>
		</div>
		<!-- /.container-fluid -->
	</nav>


    <div id="main-block" class="container main-block">
        <div class="row title">
          <div class="col-md-12">
            <div class='page-header'>
              
              <h1>DataSource Configuration</h1>
            </div>
          </div>
        </div>
        <div class="row">
            
            <div class="col-md-12">
                <div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>A DataSource can be declared via xml in the
<code>&lt;tomee-home&gt;/conf/tomee.xml</code> file or in a <code>WEB-INF/resources.xml</code> file
using a declaration like the following. All properties in the element
body are optional.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">&lt;Resource id="myDataSource" type="javax.sql.DataSource"&gt;
    accessToUnderlyingConnectionAllowed = false
    alternateUsernameAllowed = false
    connectionProperties =
    defaultAutoCommit = true
    defaultReadOnly =
    definition =
    ignoreDefaultValues = false
    initialSize = 0
    jdbcDriver = org.hsqldb.jdbcDriver
    jdbcUrl = jdbc:hsqldb:mem:hsqldb
    jtaManaged = true
    maxActive = 20
    maxIdle = 20
    maxOpenPreparedStatements = 0
    maxWaitTime = -1 millisecond
    minEvictableIdleTime = 30 minutes
    minIdle = 0
    numTestsPerEvictionRun = 3
    password =
    passwordCipher = PlainText
    poolPreparedStatements = false
    serviceId =
    testOnBorrow = true
    testOnReturn = false
    testWhileIdle = false
    timeBetweenEvictionRuns = -1 millisecond
    userName = sa
    validationQuery =
&lt;/Resource&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Alternatively, a DataSource can be declared via properties in the
<code>&lt;tomee-home&gt;/conf/system.properties</code> file or via Java VirtualMachine
<code>-D</code> properties. The properties can also be used when embedding TomEE
via the <code>javax.ejb.embeddable.EJBContainer</code> API or <code>InitialContext</code></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">myDataSource = new://Resource?type=javax.sql.DataSource
myDataSource.accessToUnderlyingConnectionAllowed = false
myDataSource.alternateUsernameAllowed = false
myDataSource.connectionProperties =
myDataSource.defaultAutoCommit = true
myDataSource.defaultReadOnly =
myDataSource.definition =
myDataSource.ignoreDefaultValues = false
myDataSource.initialSize = 0
myDataSource.jdbcDriver = org.hsqldb.jdbcDriver
myDataSource.jdbcUrl = jdbc:hsqldb:mem:hsqldb
myDataSource.jtaManaged = true
myDataSource.maxActive = 20
myDataSource.maxIdle = 20
myDataSource.maxOpenPreparedStatements = 0
myDataSource.maxWaitTime = -1 millisecond
myDataSource.minEvictableIdleTime = 30 minutes
myDataSource.minIdle = 0
myDataSource.numTestsPerEvictionRun = 3
myDataSource.password =
myDataSource.passwordCipher = PlainText
myDataSource.poolPreparedStatements = false
myDataSource.serviceId =
myDataSource.testOnBorrow = true
myDataSource.testOnReturn = false
myDataSource.testWhileIdle = false
myDataSource.timeBetweenEvictionRuns = -1 millisecond
myDataSource.userName = sa
myDataSource.validationQuery =</code></pre>
</div>
</div>
<div class="paragraph">
<p>Properties and xml can be mixed. Properties will override the xml
allowing for easy configuration change without the need for $\{} style
variable substitution. Properties are not case sensitive. If a property
is specified that is not supported by the declared DataSource a warning
will be logged. If a DataSource is needed by the application and one is
not declared, TomEE will create one dynamically using default settings.
Multiple DataSource declarations are allowed.</p>
</div>
<div class="paragraph">
<p>See the <a href="common-datasource-configurations.html">Common DataSource
Configurations</a> page for examples of configuring datasources for Derby,
MySQL, Oracle and other common databases.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_supported_properties">Supported Properties</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Property</p>
</div>
<div class="paragraph">
<p>Type</p>
</div>
<div class="paragraph">
<p>Default</p>
</div>
<div class="paragraph">
<p>Description</p>
</div>
<div class="paragraph">
<p>accessToUnderlyingConnectionAllowed</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>false</p>
</div>
<div class="paragraph">
<p>If true the raw physical connection to the database can be accessed</p>
</div>
<div class="paragraph">
<p>alternateUsernameAllowed</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>false</p>
</div>
<div class="paragraph">
<p>If true allow an alternate username and password to be specified on the
connection, rather than those specified in the DataSource definition..</p>
</div>
<div class="paragraph">
<p>connectionProperties</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>The connection properties that will be sent to the JDBC driver when
establishing new connections</p>
</div>
<div class="paragraph">
<p>defaultAutoCommit</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>true</p>
</div>
<div class="paragraph">
<p>The default auto-commit state of new connections</p>
</div>
<div class="paragraph">
<p>defaultReadOnly</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>The default read-only state of new connections If not set then the
setReadOnly method will not be called. (Some drivers don&#8217;t support read
only mode, ex: Informix)</p>
</div>
<div class="paragraph">
<p>definition</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>ignoreDefaultValues</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>false</p>
</div>
<div class="paragraph">
<p>use only all set values in this config will need a lot of properties but
allow to not set some values</p>
</div>
<div class="paragraph">
<p>initialSize</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>0</p>
</div>
<div class="paragraph">
<p>The size to reach when creating the datasource.</p>
</div>
<div class="paragraph">
<p>jdbcDriver</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>org.hsqldb.jdbcDriver</p>
</div>
<div class="paragraph">
<p>Driver class name</p>
</div>
<div class="paragraph">
<p>jdbcUrl</p>
</div>
<div class="paragraph">
<p>java.net.URI</p>
</div>
<div class="paragraph">
<p>jdbc:hsqldb:mem:hsqldb</p>
</div>
<div class="paragraph">
<p>Url for creating connections</p>
</div>
<div class="paragraph">
<p>jtaManaged</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>true</p>
</div>
<div class="paragraph">
<p>Determines wether or not this data source should be JTA managed or user
managed.</p>
</div>
<div class="paragraph">
<p>maxActive</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>20</p>
</div>
<div class="paragraph">
<p>The maximum number of active connections that can be allocated from this
pool at the same time, or a negative number for no limit. N.B. When
using dbcp2 with TomEE 7 ("DataSourceCreator dbcp"), "MaxTotal" should
be used as opposed to "MaxActive".</p>
</div>
<div class="paragraph">
<p>maxIdle</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>20</p>
</div>
<div class="paragraph">
<p>The maximum number of connections that can remain idle in the pool,
without extra ones being released, or a negative number for no limit.</p>
</div>
<div class="paragraph">
<p>maxOpenPreparedStatements</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>0</p>
</div>
<div class="paragraph">
<p>The maximum number of open statements that can be allocated from the
statement pool at the same time, or zero for no limit.</p>
</div>
<div class="paragraph">
<p>maxWaitTime</p>
</div>
<div class="paragraph">
<p>time</p>
</div>
<div class="paragraph">
<p>-1 millisecond</p>
</div>
<div class="paragraph">
<p>The maximum number of time that the pool will wait (when there are no
available connections) for a connection to be returned before throwing
an exception, or -1 to wait indefinitely.</p>
</div>
<div class="paragraph">
<p>minEvictableIdleTime</p>
</div>
<div class="paragraph">
<p>time</p>
</div>
<div class="paragraph">
<p>30 minutes</p>
</div>
<div class="paragraph">
<p>The minimum amount of time a connection may sit idle in the pool before
it is eligable for eviction by the idle connection evictor (if any).</p>
</div>
<div class="paragraph">
<p>minIdle</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>0</p>
</div>
<div class="paragraph">
<p>The minimum number of connections that can remain idle in the pool,
without extra ones being created, or zero to create none.</p>
</div>
<div class="paragraph">
<p>numTestsPerEvictionRun</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>3</p>
</div>
<div class="paragraph">
<p>The number of connectionss to examine during each run of the idle
connection evictor thread (if any).</p>
</div>
<div class="paragraph">
<p>password</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>Default password</p>
</div>
<div class="paragraph">
<p>passwordCipher</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>PlainText</p>
</div>
<div class="paragraph">
<p>poolPreparedStatements</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>false</p>
</div>
<div class="paragraph">
<p>If true, a statement pool is created for each Connection and
PreparedStatements created by one of the following methods are pooled:</p>
</div>
<div class="paragraph">
<p>serviceId</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>testOnBorrow</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>true</p>
</div>
<div class="paragraph">
<p>If true connections will be validated before being returned from the
pool. If the validation fails, the connection is destroyed, and a new
conection will be retrieved from the pool (and validated).</p>
</div>
<div class="paragraph">
<p>testOnReturn</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>false</p>
</div>
<div class="paragraph">
<p>If true connections will be validated before being returned to the pool.
If the validation fails, the connection is destroyed instead of being
returned to the pool.</p>
</div>
<div class="paragraph">
<p>testWhileIdle</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>false</p>
</div>
<div class="paragraph">
<p>If true connections will be validated by the idle connection evictor (if
any). If the validation fails, the connection is destroyed and removed
from the pool</p>
</div>
<div class="paragraph">
<p>timeBetweenEvictionRuns</p>
</div>
<div class="paragraph">
<p>time</p>
</div>
<div class="paragraph">
<p>-1 millisecond</p>
</div>
<div class="paragraph">
<p>The number of milliseconds to sleep between runs of the idle connection
evictor thread. When set to a negative number, no idle connection
evictor thread will be run.</p>
</div>
<div class="paragraph">
<p>userName</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>sa</p>
</div>
<div class="paragraph">
<p>Default user name</p>
</div>
<div class="paragraph">
<p>validationQuery</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>The SQL query that will be used to validate connections from this pool
before returning them to the caller. If specified, this query MUST be an
SQL SELECT statement that returns at least one row.</p>
</div>
<div class="paragraph">
<p>LogSql</p>
</div>
<div class="paragraph">
<p>boolean</p>
</div>
<div class="paragraph">
<p>false</p>
</div>
<div class="paragraph">
<p>Wether SQL queries should be logged or not</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_accesstounderlyingconnectionallowed">accessToUnderlyingConnectionAllowed</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If true the raw physical connection to the database can be accessed
using the following construct:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">Connection conn = ds.getConnection();
Connection rawConn = ((DelegatingConnection) conn).getInnermostDelegate();
...
conn.close()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Default is false, because misbehaving programs can do harmfull things to
the raw connection shuch as closing the raw connection or continuing to
use the raw connection after it has been assigned to another logical
connection. Be careful and only use when you need direct access to
driver specific extensions.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Do NOT close the underlying connection, only the original logical
connection wrapper.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_connectionproperties">connectionProperties</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The connection properties that will be sent to the JDBC driver when
establishing new connections</p>
</div>
<div class="paragraph">
<p>Format of the string must be [propertyName=property;]*</p>
</div>
<div class="paragraph">
<p>NOTE - The "user" and "password" properties will be passed explicitly,
so they do not need to be included here.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_transactionisolation">TransactionIsolation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The default TransactionIsolation state of new connections.</p>
</div>
<div class="paragraph">
<p>If not set then the <code>setTransactionIsolation</code> method will not be called.
The allowed values for this property are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>NONE</code></p>
</li>
<li>
<p><code>READ_COMMITTED</code></p>
</li>
<li>
<p><code>READ_UNCOMMITTED</code></p>
</li>
<li>
<p><code>REPEATABLE_READ</code></p>
</li>
<li>
<p><code>SERIALIZABLE</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Note: Most JDBC drivers do not support all isolation levels
DefaultTransactionIsolation</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_initialsize">initialSize</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The initial size to initialize the pool of connections.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_jtamanaged">jtaManaged</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Determines wether or not this data source should be JTA managed or user
managed.</p>
</div>
<div class="paragraph">
<p>If set to 'true' it will automatically be enrolled in any ongoing
transactions. Calling begin/commit/rollback or setAutoCommit on the
datasource or connection will not be allowed. If you need to perform
these functions yourself, set <code>JtaManaged</code> to <code>false</code></p>
</div>
<div class="paragraph">
<p>In terms of JPA persistence.xml:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>JtaManaged=true</code> can be used as a 'jta-data-source'</p>
</li>
<li>
<p><code>JtaManaged=false</code> can be used as a 'non-jta-data-source'</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_maxopenpreparedstatements">maxOpenPreparedStatements</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The maximum number of open statements that can be allocated from the
statement pool at the same time, or zero for no limit.</p>
</div>
<div class="paragraph">
<p>NOTE - Some drivers have limits on the number of open statements, so
make sure there are some resources left for the other (non-prepared)
statements.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_poolpreparedstatements">poolPreparedStatements</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If true, a statement pool is created for each Connection and
PreparedStatements created by one of the following methods are pooled:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">public PreparedStatement prepareStatement(String sql);
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_testonborrow">testOnBorrow</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If true connections will be validated before being returned from the
pool. If the validation fails, the connection is destroyed, and a new
conection will be retrieved from the pool (and validated).</p>
</div>
<div class="paragraph">
<p>NOTE - for a true value to have any effect, the ValidationQuery
parameter must be set.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_testonreturn">testOnReturn</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If true connections will be validated before being returned to the pool.
If the validation fails, the connection is destroyed instead of being
returned to the pool.</p>
</div>
<div class="paragraph">
<p>NOTE - for a true value to have any effect, the ValidationQuery
parameter must be set.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_testwhileidle">testWhileIdle</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If true connections will be validated by the idle connection evictor (if
any). If the validation fails, the connection is destroyed and removed
from the pool</p>
</div>
<div class="paragraph">
<p>NOTE - for a true value to have any effect, the
timeBetweenEvictionRunsMillis property must be a positive number and the
ValidationQuery parameter must be set.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_xadatasource">XADataSource</h2>
<div class="sectionbody">
<div class="paragraph">
<p>There are several ways to configure a XADataSource. Depending the
underlying datasource (Oracle, MySQL one or the other solution can be
more adapted.</p>
</div>
<div class="paragraph">
<p>This part deals with <code>JtaManaged</code> XaDataSource since a not managed
XaDataSource can be defined as a standard resource using <code>class-name</code>.</p>
</div>
<div class="sect2">
<h3 id="_single_definition">Single definition</h3>
<div class="paragraph">
<p>First solution is to define as <code>JdbcDriver</code> an XADataSource:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">&lt;Resource id="myXaDs" type="DataSource"&gt;
    JdbcDriver = org.foo.MyXaDataSource

    myXaProperty = value

    myPoolProperty = 10
&lt;/Resource&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This solution merges properties for the XaDataSource and the pool
(tomcat-jdbc for TomEE, dbcp for OpenEJB by default but still
configurable with DataSourceCreator).</p>
</div>
<div class="paragraph">
<p>Note: in this case for Oracle for instance you&#8217;ll define UserName for
the pool and User for the datasource which can look weird if you don&#8217;t
know properties are used for 2 instances (pool and datasource).</p>
</div>
<div class="paragraph">
<p>Note: this solution uses the same logic than @DataSourceDefinition
factory mecanism.</p>
</div>
</div>
<div class="sect2">
<h3 id="_two_resources_definition">Two resources definition</h3>
<div class="paragraph">
<p>An alternative is to define a resource for the XaDataSource:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">&lt;Resource id="myXa" class-name="org.foo.MyXaDataSource"&gt;
    myXaProperty = value
&lt;/Resource&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>And then wrap it in the pool:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">&lt;Resource id="myXaDs" type="DataSource"&gt;
    DataSourceCreator = [dbcp|dbcp-alternative]
    myPoolProperty = 10
&lt;/Resource&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note: <code>dbcp</code> is more adapted than <code>dbcp-alternative</code> in most of the case
because it is reusing direct dbcp JTA management.</p>
</div>
</div>
<div class="sect2">
<h3 id="_known_issues">Known issues</h3>
<div class="paragraph">
<p>For TomEE 1.7.0/1.7.1 you can need to add the property:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java"> openejb.datasource.pool = true</code></pre>
</div>
</div>
<div class="paragraph">
<p>in resource properties to ensure the resource is pooled.</p>
</div>
</div>
<div class="sect2">
<h3 id="_details_about_datasource_and_their_factories_advanced_configuration">Details about DataSource and their factories (advanced configuration)</h3>
<div class="paragraph">
<p><a href="datasource-configuration-by-creator.html">Configuration by creator</a></p>
</div>
</div>
</div>
</div>
            </div>
            
        </div>
    </div>
<footer>
		<div class="container">
			<div class="row">
				<div class="col-sm-6 text-center-mobile">
					<h3 class="white">Be simple.  Be certified. Be Tomcat.</h3>
					<h5 class="light regular light-white">"A good application in a good server"</h5>
					<ul class="social-footer">
						<li><a href="https://www.facebook.com/ApacheTomEE/"><i class="fa fa-facebook"></i></a></li>
						<li><a href="https://twitter.com/apachetomee"><i class="fa fa-twitter"></i></a></li>
						<li><a href="https://plus.google.com/communities/105208241852045684449"><i class="fa fa-google-plus"></i></a></li>
					</ul>
				</div>
				<div class="col-sm-6 text-center-mobile">
					<div class="row opening-hours">
						<div class="col-sm-3 text-center-mobile">
							<h5><a href="../../latest/docs/documentation.html" class="white">Documentation</a></h5>
							<ul class="list-unstyled">
								<li><a href="../../latest/docs/admin/configuration/index.html" class="regular light-white">How to configure</a></li>
								<li><a href="../../latest/docs/admin/file-layout.html" class="regular light-white">Dir. Structure</a></li>
								<li><a href="../../latest/docs/developer/testing/index.html" class="regular light-white">Testing</a></li>
								<li><a href="../../latest/docs/admin/cluster/index.html" class="regular light-white">Clustering</a></li>
							</ul>
						</div>
						<div class="col-sm-3 text-center-mobile">
							<h5><a href="../../latest/examples/" class="white">Examples</a></h5>
							<ul class="list-unstyled">
								<li><a href="../../latest/examples/simple-cdi-interceptor.html" class="regular light-white">CDI Interceptor</a></li>
								<li><a href="../../latest/examples/rest-cdi.html" class="regular light-white">REST with CDI</a></li>
								<li><a href="../../latest/examples/ejb-examples.html" class="regular light-white">EJB</a></li>
								<li><a href="../../latest/examples/jsf-managedBean-and-ejb.html" class="regular light-white">JSF</a></li>
							</ul>
						</div>
						<div class="col-sm-3 text-center-mobile">
							<h5><a href="../../community/index.html" class="white">Community</a></h5>
							<ul class="list-unstyled">
								<li><a href="../../community/contributors.html" class="regular light-white">Contributors</a></li>
								<li><a href="../../community/social.html" class="regular light-white">Social</a></li>
								<li><a href="../../community/sources.html" class="regular light-white">Sources</a></li>
							</ul>
						</div>
						<div class="col-sm-3 text-center-mobile">
							<h5><a href="../../security/index.html" class="white">Security</a></h5>
							<ul class="list-unstyled">
								<li><a href="http://apache.org/security" target="_blank" class="regular light-white">Apache Security</a></li>
								<li><a href="http://apache.org/security/projects.html" target="_blank" class="regular light-white">Security Projects</a></li>
								<li><a href="http://cve.mitre.org" target="_blank" class="regular light-white">CVE</a></li>
							</ul>
						</div>
					</div>
				</div>
			</div>
			<div class="row bottom-footer text-center-mobile">
				<div class="col-sm-12 light-white">
					<p>Copyright &copy; 1999-2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
				</div>
			</div>
		</div>
	</footer>
	<!-- Holder for mobile navigation -->
	<div class="mobile-nav">
        <ul>
          <li><a hef="../../latest/docs/admin/index.html">Administrators</a>
          <li><a hef="../../latest/docs/developer/index.html">Developers</a>
          <li><a hef="../../latest/docs/advanced/index.html">Advanced</a>
          <li><a hef="../../community/index.html">Community</a>
        </ul>
		<a href="#" class="close-link"><i class="arrow_up"></i></a>
	</div>
	<!-- Scripts -->
	<script src="../../js/jquery-1.11.1.min.js"></script>
	<script src="../../js/owl.carousel.min.js"></script>
	<script src="../../js/bootstrap.min.js"></script>
	<script src="../../js/wow.min.js"></script>
	<script src="../../js/typewriter.js"></script>
	<script src="../../js/jquery.onepagenav.js"></script>
	<script src="../../js/tree.jquery.js"></script>
	<script src="../../js/highlight.pack.js"></script>
    <script src="../../js/main.js"></script>
		</body>

</html>

