I am not sure whether this is the right forum to post this question. Please bear with me.
We have a very big
J2EE web application. Following is our application design explained in brief :
- A set of
Struts action classes. which don't have any instance variables declared.
Hence they are all stateless.
- These action classes, for each request retrive session data object from EJB stateful session and store it back in session at the end of request.
- Session object is externalizable with all serializable data as members. This session data object has a Collection of sub-objects of same type.
- There is a static factory class, which reads xml config file to create Collection of sub-objects to be stored in main session object and these sub-objects are cached in the factory. And factory gives deep copy of these objects instead of same objects, hence main session object will be working on seperate set of these sub-objects for each session.
- We have a very simple Stateful session EJB which has main session object.
This wholething works perfect when there is no concurrent access. But, while doing performance
test, when hit with multiple users at the same time, we are seeing some of the sub-objects missing from main session object . What could be the reason for this ? we don't see any activation /passivation going on also, as our max-bean-in-cache is set to a very high number.
We are using Weblogic 8.1 as app server and have set weblogic param <enable-call-by-reference>True</enable-call-by-reference> in weblogic-ejb-jar.xml.
Please help ...any clues, ideas will be appreciated.
Thanks