<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Stateful Bean - Timeout put bean in pool
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/mikka2010">mikka2010</a> in <i>EJB 3.0</i> - <a href="http://community.jboss.org/message/568236#568236">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hello,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I have observed a strange behaviour of my simple stateful bean.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>For testing I annotated my bean class like this:</p><pre class="jive_text_macro jive_macro_code"><p>@CacheConfig (maxSize=100, idleTimeoutSeconds=30, removalTimeoutSeconds=30)</p></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>If the client creates and destroys my stateful bean, everything works fine.  After creation the bean is held in the cache until it is passivated or  the client executes the beans remove-Method, which executes the  ejbRemove-Method.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>But if I simulate a client crash, so that the bean is  passivated after 30 seconds of inactivity and then destroyed after  further 30 seconds. (only the ejbRemove-Method is called) The bean is  still available in memory, because it is only transfered from the cache  to the pool.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>In the file ejb3-interceptors-aop.xml I configured the pool size like this for "Base Stateful Bean"</p><pre class="jive_text_macro jive_macro_code"><p><annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)"><br/>  @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=3, timeout=100)         <br/></annotation></p></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>After starting and crashing 5 Clients, eclipse shows the following pool's attributes:</p><pre class="jive_text_macro jive_macro_code"><p>maxSize = 3</p><p>inUse = 5</p></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>The content of the pool is never reduced. The underlying LinkedList always contains 5 entries.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Why  is the bean transfered from the cache to pool in case of a timeout and  why is the bean not destroyed in the same way as it is done, when the  client calls the remove-Method? Why is the pool ever used in case of timeout?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I thought that statful beans don't use a pool. My understanding is that stateful beans only use the cache until they are active.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Kind regards,</p><p>Huber</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/568236#568236">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in EJB 3.0 at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>