Hi Experts!

I am running into a weird problem and I think I might have found a bug in JBoss.

Some brief background first:
I am helping a company to migrate their application from WebLogic to JBoss. 
This application is a really BIG J2EE1.3 implementation that was running on 
WebLogic 5.1 and should now be running on JBoss 4.0.2.
The application is extensively using EJBs, especially SLSB's and BMP Entity 
Beans.

Synopsis of the observed issue:
After some time, the testers of the system observe data integrity issues. For 
example, when trying to add an new entity the DB complaints that some data 
already exists, although the entity attributes should still be emtpy, except 
for the ID! To make it clear: it does not complain that the ID is duplicate, 
but that some related unique data that is stored in one of the entity attribute 
already exists, although it should be empty!

After some more investigation, it appears that JBoss seems to re-use some 
entity from the pool but still having some data in its property.
We could show that this must be somehow related to the EntityInstancePool, 
since at first in standarjboss.xml we had the default setting in the BMP 
Container configuration:
<container-pool-conf>
        100
</container-pool-conf>

After changing this setting to '30' we observed the same issue much earlier.
After that, we turned on TRACE logging for the system and ejb packages to see 
what is really going on. The issue seems to be related with one particular 
Entity Bean. Just before the faulty transaction, I noticed the following line 
in the log:
2006-07-26 14:23:10,858 TRACE [org.jboss.ejb.plugins.EntityInstancePool] Get 
instance [EMAIL PROTECTED] <class name of bean>.

So, it appears to me that the instance pool had 29 elements and the error 
starts to occur the next time a new instance of that pool gets created, i.e. we 
should have now 'Maximum Size" elements in the pool!

However, when looking at the trace log before, I saw a couple of the following 
messages:

2006-07-26 14:12:45,194 TRACE [org.jboss.ejb.plugins.EntityInstancePool] 0/100 
Free instance:[EMAIL PROTECTED]  <class name of bean>

For the "experts" of you, you will see that the second number after the "/" 
should show the maxSize of the EntityInstancePool! Well, we actually have set 
it to '30' when running this example!

So, I would like to know how exactly the variable maxSize in EntityInstancePool 
gets set and where the value comes from. I also would like to know how the 
InstancePool and InstanceCache actually work together.

Thanks for any reply!


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

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

Reply via email to