JBoss 3.2.1
Solaris 8
JDK 1.3.1

During our load testing of the port of our application to JBoss, we
discovered that EJB call return values were being crossed (i.e. one
call's return data was the same for two calls)

After 4 days of debugging I discovered that the return value from this
stateless session bean was an ivar from that bean. That value was
being stepped on by the next call.

Granted not the smartest thing to do. But conceptually when thinking
about the thread-safety of an EJB container, I would expect it from
the moment the bytes come off the wire until the return value is put
back on the wire.

Looking at the interceptor stack:

<container-interceptors>
   <interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</interceptor>
   <interceptor>org.jboss.ejb.plugins.CleanShutdownInterceptor</interceptor>
   <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
   <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
   <!-- CMT -->
   <interceptor 
transaction="Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
   <interceptor transaction="Container" 
metricsEnabled="true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
   <interceptor 
transaction="Container">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
   <!-- BMT -->
   <interceptor 
transaction="Bean">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
   <interceptor transaction="Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
   <interceptor transaction="Bean" 
metricsEnabled="true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
   
<interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
</container-interceptors>

StatelessSessionInstanceInterceptor is the guy who manages the
statless session bean pool. All activity after this call are thrad-safe
w/rspt to the EJB, but after that EJB is put back in the pool, all
bets are off.

So really, JBoss's EJB are thread safe, but only after the call passes
through the StatelessSessionInstanceInterceptor.

Just a heads up.

- Bob


-- 
SynXis Corporation      | [EMAIL PROTECTED]    | no .sig today.
1610 Wynkoop, Suite 400 | Ph: (303)595-2511 | 
Denver, CO  80202       | Fax:(303)534-4257 | 



-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to