"ariekenb" wrote : After doing this I only see 2 instances of my stateless 
session bean created, even in tests where it's called from multiple different 
MDBs and directly from clients.  It appears StrictMaxPool is much more 
conservative in ThreadlocalPool.
  | 
  | doktora - Maybe using StrictMaxPool would be an interesting test/workaround 
in your case?
  | 
  | To the JBoss experts out there - is it a "problem" that ThreadlocalPool 
appears to create a new instance of a stateless session bean for every call 
from an MDB, or is this somehow being managed?  What exactly is the difference 
with StrictMaxPool?  Will using StrictMaxPool kill performance?
http://jira.jboss.org/jira/browse/JBAS-5345

ThreadlocalPool should be used in a scenario where there is high concurrency on 
an EJB which is being called by a ThreadPool. The ThreadlocalPool will then 
ensure that there is one instance per Thread and no contention between these 
threads.

It would appear that JBossMQ does not use a ThreadPool, but instantiates 
threads on the fly. Thus the ThreadlocalPool will keep on creating instances to 
match.

That makes the use of StrictMaxPool mandatory.

Thus only remains the issue of why ThreadlocalPool retains instances after the 
thread has died. ThreadlocalPool retains all instances to make sure PreDestroy 
is called upon destruction of the pool. 
I could implement something that PreDestroy is called when the instance is 
ready for GC, but in this scenario it would entail creating an instance for 
each MDB call. That is certainly a higher performance hit then contention in 
the StrictMaxPool.

http://jira.jboss.org/jira/browse/JBAS-1175

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4141227#4141227

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4141227
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to