blob: f7b6eef69d3e6de7a843b468ae93f0868289f5f4 [file] [log] [blame]
<!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/security.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>StatefulContainer Configuration</h1>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>A StatefulContainer 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-xml" data-lang="xml">&lt;Container id="myStatefulContainer" type="STATEFUL"&gt;
accessTimeout = 30 seconds
bulkPassivate = 100
cache = org.apache.openejb.core.stateful.SimpleCache
capacity = 1000
frequency = 60
passivator = org.apache.openejb.core.stateful.SimplePassivater
timeOut = 20
&lt;/Container&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Alternatively, a StatefulContainer 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>jakarta.ejb.embeddable.EJBContainer</code> API or <code>InitialContext</code></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-properties" data-lang="properties">myStatefulContainer = new://Container?type=STATEFUL
myStatefulContainer.accessTimeout = 30 seconds
myStatefulContainer.bulkPassivate = 100
myStatefulContainer.cache = org.apache.openejb.core.stateful.SimpleCache
myStatefulContainer.capacity = 1000
myStatefulContainer.frequency = 60
myStatefulContainer.passivator = org.apache.openejb.core.stateful.SimplePassivater
myStatefulContainer.timeOut = 20</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 StatefulContainer a
warning will be logged. If a StatefulContainer is needed by the
application and one is not declared, TomEE will create one dynamically
using default settings. Multiple StatefulContainer declarations are
allowed. # Supported Properties</p>
</div>
<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>accessTimeout</p>
</div>
<div class="paragraph">
<p>time</p>
</div>
<div class="paragraph">
<p>30 seconds</p>
</div>
<div class="paragraph">
<p>Specifies the maximum time an invocation could wait for the <code>@Stateful</code>
bean instance to become available before giving up.</p>
</div>
<div class="paragraph">
<p>bulkPassivate</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>100</p>
</div>
<div class="paragraph">
<p>Property name that specifies the number of instances to passivate at one
time when doing bulk passivation.</p>
</div>
<div class="paragraph">
<p>cache</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>org.apache.openejb.core.stateful.SimpleCache</p>
</div>
<div class="paragraph">
<p>The cache is responsible for managing stateful bean instances. The cache
can page instances to disk as memory is filled and can destroy abandoned
instances. A different cache implementation can be used by setting this
property to the fully qualified class name of the Cache implementation.</p>
</div>
<div class="paragraph">
<p>capacity</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>1000</p>
</div>
<div class="paragraph">
<p>Specifies the size of the bean pools for this stateful SessionBean
container.</p>
</div>
<div class="paragraph">
<p>frequency</p>
</div>
<div class="paragraph">
<p>int</p>
</div>
<div class="paragraph">
<p>60</p>
</div>
<div class="paragraph">
<p>Specifies the frequency (in seconds) at which the bean cache is checked
for idle beans.</p>
</div>
<div class="paragraph">
<p>passivator</p>
</div>
<div class="paragraph">
<p>String</p>
</div>
<div class="paragraph">
<p>org.apache.openejb.core.stateful.SimplePassivater</p>
</div>
<div class="paragraph">
<p>The passivator is responsible for writing beans to disk at passivation
time. Different passivators can be used by setting this property to the
fully qualified class name of the <code>PassivationStrategy</code> implementation.
The passivator is not responsible for invoking any callbacks or other
processing, its only responsibly is to write the bean state to disk.</p>
</div>
<div class="paragraph">
<p>timeOut</p>
</div>
<div class="paragraph">
<p>time</p>
</div>
<div class="paragraph">
<p>20</p>
</div>
<div class="paragraph">
<p>Specifies the time a bean can be idle before it is removed by the
container.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_accesstimeout">accessTimeout</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Specifies the maximum time an invocation could wait for the <code>@Stateful</code>
bean instance to become available before giving up.</p>
</div>
<div class="paragraph">
<p>After the timeout is reached a
<code>jakarta.ejb.ConcurrentAccessTimeoutException</code> will be thrown.</p>
</div>
<div class="paragraph">
<p>Usable time units: nanoseconds, microsecons, milliseconds, seconds,
minutes, hours, days. Or any combination such as "1 hour and 27 minutes
and 10 seconds"</p>
</div>
<div class="paragraph">
<p>Any usage of the <code>jakarta.ejb.AccessTimeout</code> annotation will override this
setting for the bean or method where the annotation is used.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_passivator">passivator</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The passivator is responsible for writing beans to disk at passivation
time. Different passivators can be used by setting this property to the
fully qualified class name of the <code>PassivationStrategy</code> implementation.
The passivator is not responsible for invoking any callbacks or other
processing, its only responsibly is to write the bean state to disk.</p>
</div>
<div class="paragraph">
<p>Known implementations:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>org.apache.openejb.core.stateful.RAFPassivater</p>
</li>
<li>
<p>org.apache.openejb.core.stateful.SimplePassivater</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_timeout">timeOut</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Specifies the time a bean can be idle before it is removed by the
container.</p>
</div>
<div class="paragraph">
<p>This value is measured in minutes. A value of 5 would result in a
time-out of 5 minutes between invocations. A value of -1 would mean no
timeout. A value of 0 would mean a bean can be immediately removed by
the container.</p>
</div>
<div class="paragraph">
<p>Any usage of the <code>jakarta.ejb.StatefulTimeout</code> annotation will override
this setting for the bean where the annotation is used.</p>
</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/" 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>