blob: 02db97bf7e7110724221f2d8bb2cfaa20df4b618 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<!-- $PAGETITLE -->
<TITLE>OpenEJB - Containers</TITLE>
<LINK href="http://openejb.apache.org/all.css" rel="stylesheet" type="text/css">
<!--[if IE]><link rel="stylesheet" type="text/css" media="screen, projection" href="openejb.apache.org/ie.css"><![endif]-->
<LINK rel="SHORTCUT ICON" href="http://openejb.apache.org/images/favicon.ico">
<META http-equiv="Content-Type" content="text/html;charset=UTF-8">
<SCRIPT language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></SCRIPT>
<SCRIPT language="javascript" src="http://openejb.apache.org/tweet/jquery.tweet.js" type="text/javascript"></SCRIPT>
<SCRIPT type="text/javascript">
$(document).ready(function(){
$(".tweet").tweet({
avatar_size: 32,
count: 4,
fetch:25,
username: "openejb",
list: "contributors",
template:"{avatar}{text}",
filter: function(t){ return /openejb/i.test(t["tweet_raw_text"]); },
loading_text: "loading list..."
});
});
</SCRIPT>
</HEAD>
<BODY>
<!-- Delay the loading of the external javascript file needed for labels (as it takes too long to load and visibly holds loading of the page body) -->
<!-- To do this without javascript errors over undefined functions, we need to declare stubs here (that are overrided later by the proper implementations) -->
<SCRIPT language="JavaScript" type="text/javascript">
function doAddLabel(hideTextfieldAfterAddParam)
{
// stub
}
function onAddLabel()
{
// stub
}
function showLabelsInput()
{
// stub
}
</SCRIPT>
<A name="top"></A>
<TABLE class="frameTable" cellpadding="0" cellspacing="0" border="0">
<TR class="Row1">
<TD class="Col1"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col2"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col3"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col4"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col5"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
</TR>
<TR class="Row2">
<TD class="Col1"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col2">&nbsp;</TD>
<TD class="Col3" id="breadcrumbs">
<!-- $TOP_NAV_BAR -->
<A href="index.html" title="Index">Home</A> | <A href="news.html" title="News">News</A> | <A href="faq.html" title="FAQ">FAQ</A> | <A href="download.html" title="Download">Download</A> | <A href="mailing-lists.html" title="Mailing Lists">Lists</A> | <A href="http://issues.apache.org/jira/browse/OPENEJB" class="external-link" rel="nofollow">Issues</A>
</TD>
<TD class="Col4"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col5">&nbsp;</TD>
</TR>
<TR class="Row3">
<TD class="Col1"><IMG alt="" class="Row3Img" id="thinLine" src="http://openejb.apache.org/images/line_sm.gif"></TD>
<TD class="Col2"><IMG alt="" class="Row3Img" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col3"><IMG alt="" class="Row3Img" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col4"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col5"><IMG alt="" class="Row3Img" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
</TR>
<TR class="Row4">
<TD class="Col1">
<SPAN id="Navigation">
<H3><A name="Navigation-Overview"></A>Overview</H3>
<UL class="alternate" type="square">
<LI><A href="index.html" title="Index">Home</A></LI>
<LI><A href="news.html" title="News">News</A></LI>
<LI><A href="faq.html" title="FAQ">FAQ</A></LI>
<LI><A href="download.html" title="Download">Download</A></LI>
<LI><A href="../OPENEJBx30/index.html" title="Index">Documentation</A></LI>
<LI><A href="examples.html" title="Examples">Examples</A></LI>
<LI><A href="http://cwiki.apache.org/confluence/display/OPENEJB/Lightening%20Demos" class="external-link" rel="nofollow">Lightning Demos</A></LI>
<LI><A href="mailing-lists.html" title="Mailing Lists">Mailing Lists</A></LI>
<LI><A href="source-code.html" title="Source Code">Source Code</A></LI>
<LI><A href="http://blogs.apache.org/openejb" class="external-link" rel="nofollow">Project Blog</A></LI>
</UL>
<H3><A name="Navigation-Servers"></A>Servers</H3>
<UL class="alternate" type="square">
<LI><A href="local-server.html" title="Local Server">Local</A></LI>
<LI><A href="remote-server.html" title="Remote Server">Remote</A></LI>
</UL>
<H3><A name="Navigation-Integrations"></A>Integrations</H3>
<UL class="alternate" type="square">
<LI><A href="../OPENEJBx30/tomcat.html" title="Tomcat">Tomcat</A></LI>
<LI><A href="geronimo.html" title="Geronimo">Geronimo</A></LI>
<LI><A href="webobjects.html" title="WebObjects">WebObjects</A></LI>
</UL>
<H3><A name="Navigation-Community"></A>Community</H3>
<UL class="alternate" type="square">
<LI><A href="team.html" title="Team">Team</A></LI>
<LI><A href="articles.html" title="Articles">Articles</A></LI>
<LI><A href="http://webchat.freenode.net/?channels=openejb" class="external-link" rel="nofollow">IRC</A></LI>
</UL>
<H3><A name="Navigation-RelatedProjects"></A>Related Projects</H3>
<UL class="alternate" type="square">
<LI><A href="http://activemq.apache.org/" class="external-link" rel="nofollow">ActiveMQ</A></LI>
<LI><A href="http://openjpa.apache.org/" class="external-link" rel="nofollow">OpenJPA</A></LI>
<LI><A href="http://cxf.apache.org/" class="external-link" rel="nofollow">CXF</A></LI>
</UL>
<H3><A name="Navigation-Index"></A>Index</H3>
<UL class="alternate" type="square">
<LI><A href="space-index.html" title="Space Index">Site Index</A></LI>
<LI><A href="../OPENEJBx30/space-index.html" title="Space Index">Doc Index</A></LI>
</UL>
<H3>
<A name="Navigation-Feeds"></A>
Feeds
</H3>
<UL class="feeds">
<LI>
<A href="http://cwiki.apache.org/confluence/spaces/rss.action?key=OPENEJB&newPages=false">
<IMG src="http://openejb.apache.org/images/rss.gif"></A>
<A class="feedsText" href="http://cwiki.apache.org/confluence/spaces/rss.action?key=OPENEJB&newPages=false">Site</A>
</LI>
<LI><A href="http://cwiki.apache.org/confluence/spaces/blogrss.action?key=OPENEJB">
<IMG src="http://openejb.apache.org/images/rss.gif"></A>
<A class="feedsText" href="http://cwiki.apache.org/confluence/spaces/blogrss.action?key=OPENEJB">News</A>
</LI>
</UL>
</SPAN>
</TD>
<TD class="Col2">&nbsp;</TD>
<TD class="Col3">
<TABLE id="PageHeader" border="0" width="100%">
<TR>
<TD>
<A href="http://openejb.org/">
<IMG hspace="0" src="http://openejb.apache.org/images/logo_openejb.gif" vspace="0">
</A>
</TD>
<TD align="right">
<A href="http://www.apache.org/">
<IMG src="http://www.apache.org/images/asf-logo.gif" width="258" height="66">
</A>
</TD>
</TR>
<TR>
<TD id="page_title">
<!-- $TITLE -->
Containers
</TD>
<TD align="right">
<BR><BR>
<!-- Google CSE Search Box Begins -->
<FORM id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
<INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
<INPUT type="hidden" name="cof" value="FORID:0">
<INPUT name="q" type="text" size="25">
<INPUT type="submit" name="sa" value="Search">
</FORM>
<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>
<!-- Google CSE Search Box Ends -->
</TD>
</TR>
</TABLE>
<P>
<!-- $BODY -->
<DIV id="PageContent">
<H1><A name="Containers-DeclaringyourContainer"></A>Declaring your Container</H1>
<P>CMP Entity containers are defined with the &lt;Container&gt; element, under the &lt;openejb&gt; element. This is actually the declaration used for all containers defined in the container system. The part that actually makes it a cmp container is the ctype attribute, specifially, a ctype attribute set to CMP_ENTITY as such...</P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;"><B>example_01.conf</B></DIV><DIV class="codeContent panelContent">
<PRE class="code-xml"><SPAN class="code-tag">&lt;?xml version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN>?&gt;</SPAN>
<SPAN class="code-tag">&lt;openejb&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;Default CMP Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;/openejb&gt;</SPAN>
</PRE>
</DIV></DIV>
<P>The really fun part is that the above configuration file is completely legal! If you started the server and pointed to this file...</P>
<BLOCKQUOTE><P>./openejb.sh start -conf example_01.conf</P></BLOCKQUOTE>
<P>...you would end up with a running server that contained only one container, called &quot;Default CMP Container&quot;. You could then deploy beans into it and everything. There would be no other containers running in the server at all. If you telnet'd into the server and typed the 'system' command, you could see for yourself that there is nothing else in the system.</P>
<BLOCKQUOTE>
<P>dblevins@Miles /dev/OpenEJB<BR>
$ telnet localhost 4200<BR>
Trying 127.0.0.1...<BR>
Connected to Miles<BR>
Escape character is '^]'.<BR>
OpenEJB Remote Server Console<BR>
type 'help' for a list of commands<BR>
<A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=OPENEJB&title=openejb&linkCreation=true&fromPageId=26530" class="createlink">openejb</A>$ system<BR>
Containers:<BR>
Default CMP Container</P>
<P>Deployments:<BR>
<A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=OPENEJB&title=openejb&linkCreation=true&fromPageId=26530" class="createlink">openejb</A>$</P></BLOCKQUOTE>
<P>You see that. No beans, no JDBC resources, nothing but one CMP container called &quot;Default CMP Container&quot;.</P>
<H1><A name="Containers-NamingyourContainer"></A>Naming your Container</H1>
<P>You can call the container anything you want, just change the value of the id attribute. Here is a container called &quot;My PostgreSQL Contianer&quot;</P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;"><B>example_02.conf</B></DIV><DIV class="codeContent panelContent">
<PRE class="code-xml"><SPAN class="code-tag">&lt;?xml version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN>?&gt;</SPAN>
<SPAN class="code-tag">&lt;openejb&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My PostgreSQL Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;/openejb&gt;</SPAN>
</PRE>
</DIV></DIV>
<P>If you were to deploy a CMP bean into this configuration, you would see &quot;My PostgreSQL Container&quot; in the list of usable containers, in fact, it would be the only container in the list.</P>
<BLOCKQUOTE>
<P>dblevins@Miles /dev/OpenEJB/openejb<BR>
$ ./openejb.sh deploy -conf example_02.conf myCMPBean.jar<BR>
...(skipping to step two)...</P>
<P>==--- Step 2 ---==</P>
<P>Please specify which container the bean will run in.<BR>
Available containers are:</P>
<P>Num Type ID</P>
<P>1 CMP_ENTITY My PostgreSQL Container</P>
<P>Type the number of the container<BR>
-options to view the list again<BR>
or -help for more information.</P>
<P>Container:</P></BLOCKQUOTE>
<P>After deployment, you would end up with a configuration like this one</P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;"><B>example_02.conf</B></DIV><DIV class="codeContent panelContent">
<PRE class="code-xml"><SPAN class="code-tag">&lt;?xml version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN>?&gt;</SPAN>
<SPAN class="code-tag">&lt;openejb&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My PostgreSQL Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;Deployments jar=<SPAN class="code-quote">&quot;myCMPBean.jar&quot;</SPAN> /&gt;</SPAN>
<SPAN class="code-tag">&lt;/openejb&gt;</SPAN>
</PRE>
</DIV></DIV>
<P>Most important, that bean will now be mapped directly to the container id &quot;My PostgreSQL Container&quot;. So if you change the name of the container and do not redeploy the myCMPBean.jar to point to the new container id, you will have big problems!</P>
<H1><A name="Containers-Containertypes"></A>Container types</H1>
<P>You can declare as many containers as you want. The available container types are:</P>
<UL>
<LI>CMP_ENTITY</LI>
<LI>BMP_ENTITY</LI>
<LI>STATELESS</LI>
<LI>STATEFUL</LI>
</UL>
<P>The containers can all be of the same type, or a mix of the types.</P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;"><B>example_03.conf</B></DIV><DIV class="codeContent panelContent">
<PRE class="code-xml"><SPAN class="code-tag">&lt;?xml version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN>?&gt;</SPAN>
<SPAN class="code-tag">&lt;openejb&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My PostgreSQL Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My MySQL Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My InstantDB Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My Stateful Session Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;STATEFUL&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My Stateless Session Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;STATELESS&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;/openejb&gt;</SPAN>
</PRE>
</DIV></DIV>
<H1><A name="Containers-ConfiguringyourContainer"></A>Configuring your Container</H1>
<P>Of course, if you did have a configuration like the one above, it would be a bit pointless as all three of your CMP containers would be using the default CMP container configuration. To acually configure a container differently, you simply need to specifiy new values for the properties that the container has. These will override the defaults for that particular container declaration. So it's possible to declare multiple containers of the same type, but configure each one differently. Let's use our CMP_ENTITY containers above as an example.</P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;"><B>example_03.conf</B></DIV><DIV class="codeContent panelContent">
<PRE class="code-xml"><SPAN class="code-tag">&lt;?xml version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN>?&gt;</SPAN>
<SPAN class="code-tag">&lt;openejb&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My PostgreSQL Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>&gt;</SPAN>
Global_TX_Database conf/postgresql.cmp.global-database.xml
Local_TX_Database conf/postgresql.cmp.local-database.xml
<SPAN class="code-tag">&lt;/Container&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My MySQL Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>&gt;</SPAN>
Global_TX_Database conf/mysql.cmp.global-database.xml
Local_TX_Database conf/mysql.cmp.local-database.xml
<SPAN class="code-tag">&lt;/Container&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My InstantDB Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>&gt;</SPAN>
Global_TX_Database conf/instantdb.cmp.global-database.xml
Local_TX_Database conf/instantdb.cmp.local-database.xml
<SPAN class="code-tag">&lt;/Container&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My Stateful Session Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;STATEFUL&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My Stateless Session Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;STATELESS&quot;</SPAN>/&gt;</SPAN>
<SPAN class="code-tag">&lt;/openejb&gt;</SPAN>
</PRE>
</DIV></DIV>
<P>The format of the configuration parameters is actually just regular old java.util.Properties file format. It keeps things simple and doesn't require you to type endless amounts of tags that are just name/value pairs anyway. The java.util.Properties file format allows for spaces, tabs, colons, or equals signs to separate the name value pairs, so this would also be acceptable..</P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;"><B>example_03.conf</B></DIV><DIV class="codeContent panelContent">
<PRE class="code-xml"><SPAN class="code-tag">&lt;?xml version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN>?&gt;</SPAN>
<SPAN class="code-tag">&lt;openejb&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My PostgreSQL Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>&gt;</SPAN>
! This is a comment
Global_TX_Database = conf/postgresql.cmp.global-database.xml
Local_TX_Database=conf/postgresql.cmp.local-database.xml
<SPAN class="code-tag">&lt;/Container&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My MySQL Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>&gt;</SPAN>
# This is also a comment
Global_TX_Database:conf/mysql.cmp.global-database.xml
Local_TX_Database : conf/mysql.cmp.local-database.xml
<SPAN class="code-tag">&lt;/Container&gt;</SPAN>
<SPAN class="code-tag">&lt;Container id=<SPAN class="code-quote">&quot;My InstantDB Container&quot;</SPAN> ctype=<SPAN class="code-quote">&quot;CMP_ENTITY&quot;</SPAN>&gt;</SPAN>
Global_TX_Database conf/instantdb.cmp.global-database.xml
Local_TX_Database conf/instantdb.cmp.local-database.xml
<SPAN class="code-tag">&lt;/Container&gt;</SPAN>
<SPAN class="code-tag">&lt;/openejb&gt;</SPAN>
</PRE>
</DIV></DIV>
<H1><A name="Containers-Configurationproperties"></A>Configuration properties</H1>
<P>The actual properties that each container type accepts are different for each type. Here is a reference for each container type.</P>
<H2><A name="Containers-CMPENTITYproperties"></A>CMP_ENTITY properties</H2>
<H3><A name="Containers-PoolSize"></A>PoolSize</H3>
<P>The default size of the method ready bean pools. Every bean class gets its own pool of this size. The value should be any integer.</P>
<P>Default:</P>
<BLOCKQUOTE><P>PoolSize 100</P></BLOCKQUOTE>
<H3><A name="Containers-GlobalTXDatabase"></A>Global_TX_Database</H3>
<P>The name of the database.xml file that is used for global or container managed transactions. This will be used when the TransactionManager is managing the transaction, such as when the tx attribute is Supports(and there is a client tx), RequiresNew, Required or Manditory.</P>
<P>Specifies the configuration for obtaining database connections and the mapping.xml schema which describes how beans map to the database.</P>
<P>Default:</P>
<BLOCKQUOTE><P>Global_TX_Database conf/default.cmp_global_tx_database.xml</P></BLOCKQUOTE>
<H3><A name="Containers-LocalTXDatabase"></A>Local_TX_Database</H3>
<P>The name of the database.xml file that is used for local or unspecified transaction contexts. This will be used when the TransactionManager is not managing the transaction, such as when the tx attribute is Supports (and there is no client tx), NotSupported, or Never.</P>
<P>Specifies the configuration for obtaining database connections and the mapping.xml schema which describes how beans map to the database.</P>
<P>Default:</P>
<BLOCKQUOTE><P>Local_TX_Database conf/default.cmp_local_tx_database.xml</P></BLOCKQUOTE>
<H2><A name="Containers-BMPENTITYproperties"></A>BMP_ENTITY properties</H2>
<P>The BMP Container has no customizable properties to override.</P>
<H2><A name="Containers-STATEFULproperties"></A>STATEFUL properties</H2>
<H3><A name="Containers-Passivator"></A>Passivator</H3>
<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 PassivationStrategy 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>
<P>Known implementations:<BR>
org.openejb.core.stateful.RAFPassivater<BR>
org.openejb.core.stateful.SimplePassivater<BR>
Default:</P>
<BLOCKQUOTE><P>Passivator org.openejb.core.stateful.SimplePassivater</P></BLOCKQUOTE>
<H3><A name="Containers-TimeOut"></A>TimeOut</H3>
<P>Specifies the time to wait between invocations. This value is measured in minutes. A value of 5 would result in a time-out of 5 minutes between invocations.</P>
<P>Default:</P>
<BLOCKQUOTE><P>TimeOut 20</P></BLOCKQUOTE>
<H3><A name="Containers-PoolSize"></A>PoolSize</H3>
<P>Specifies the size of the bean pools for this stateful SessionBean container.</P>
<P>Default:</P>
<BLOCKQUOTE><P>PoolSize 100</P></BLOCKQUOTE>
<H3><A name="Containers-BulkPassivate"></A>BulkPassivate</H3>
<P>Property name that specifies the number of instances to passivate at one time when doing bulk passivation. Must be less than the PoolSize.</P>
<P>Default:</P>
<BLOCKQUOTE><P>BulkPassivate 50</P></BLOCKQUOTE>
<H2><A name="Containers-STATELESSproperties"></A>STATELESS properties</H2>
<H3><A name="Containers-StrictPooling"></A>StrictPooling</H3>
<P>Specifies the whether or not to this stateless SessionBean container should use a strict pooling algorithm. true or false</P>
<P>Default:</P>
<BLOCKQUOTE><P>StrictPooling true</P></BLOCKQUOTE>
</DIV>
</P>
</TD>
<TD class="Col4"><IMG src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col5">
</TD>
</TR>
<TR class="Row5">
<TD class="Col1">&nbsp;</TD>
<TD class="Col2">&nbsp;</TD>
<TD class="Col3">
<BR>
<BR>
<IMG width="100%" height="1" src="http://openejb.apache.org/images/line_light.gif">
<TABLE width="100%">
<TR>
<TD>
<SPAN class="bodyGrey">
<SMALL>
<NOTICE><!-- $FOOTER -->
Apache OpenEJB is an project of The Apache Software Foundation (ASF)
</NOTICE>
<BR>
Site Powered by
<A href="http://atlassian.com/">Atlassian</A>
<A href="http://atlassian.com/confluence/">Confluence</A>
.
</SMALL>
</SPAN>
</TD>
<TD align="right">
<A style="color:#999;font-size:small;font-weight:normal;" href="https://cwiki.apache.org/confluence/pages/editpage.action?spaceKey=OPENEJB&title=Containers">[ edit ]</A>
</TD>
</TR>
</TABLE>
<BR>
</TD>
<TD class="Col4"><IMG src="http://openejb.apache.org/images/dotTrans.gif"></TD>
<TD class="Col5">&nbsp;</TD>
</TR>
</TABLE>
<!-- Needed for composition plugin -->
<!-- delay the loading of large javascript files to the end so that they don't interfere with the loading of page content -->
<SPAN style="display: none">
<SCRIPT type="text/javascript" language="JavaScript" src="http://cwiki.apache.org/confluence/labels-javascript"></SCRIPT>
<SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</SCRIPT>
<SCRIPT type="text/javascript">
_uacct = "UA-2717626-1";
urchinTracker();
</SCRIPT>
</SPAN>
</BODY>
</HTML>