Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Struts - A MVC web framework
Tomcat - JSP/Servlet container
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
JSP - A mailing list about Java Server Pages specification and reference
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
A matter of memory

A matter of memory

2003-10-27       - By peng wang

 Back
Reply:     1     2  

Hi All,

I'v adopted the Petstore EJBController pattern for our
application.
I make a little modification that I change
EJBController from
stateful session bean to stateless due to no need for
us to maintain
conversition states. There is a statemachine in the
EJBController,
the statemachine has a hashmap used to cache Actions
which are
event handlers. Because EJBController is now
stateless, it instances
will be pooled and in primary memory. Since each
statemachine caches
a different set of Actions, I'm concerning if the
Actions objects will
cause the memory problem.(We have about 40 Actions.
And the user number
of EJBController online will be very large.)

public class StateMachine implements
java.io.Serializable Source code of java.io.Serializable {

   private EJBControllerLocalEJB ccejb;
   private HashMap attributeMap;
   private HashMap actionMap;
   private SessionContext sc;

   public StateMachine(EJBControllerLocalEJB ccejb,
SessionContext sc) {
       this.ccejb = ccejb;
       this.sc = sc;
       attributeMap = new HashMap();
       actionMap = new HashMap();
   }

   public EventResponse processEvent(Event ev) throws
EventException {
       String actionName =
ev.getEJBActionClassName();
       EventResponse response = null;
       if (actionName  != null) {
           EJBAction action = null;
           try {
                if (actionMap.get(actionName) !=
null) {
                   action =
(EJBAction)actionMap.get(actionName);
                } else {
                    action =
(EJBAction)Class.forName(actionName).newInstance();
                    // ********** caching here
************
                    actionMap.put(actionName,
action);
            }
           } catch (Exception ex) {
               System.err.println("StateMachine:
error loading " + actionName + " :" + ex);
           }
           if (action != null) {
               action.init(this);
               // do the magic
               action.doStart();
               response = action.perform(ev);
               action.doEnd();
           }
       }
       return response;
   }
...
}

I have thought of making the Actions class as light as
possible that the Actions call other
stateless EJBs to do services. Does an alternative
strategy needed here, such as implementing
all Actions as Singleton?

Thanks a lot,

wp


__ ____ ____ ____ ____ ____ ______
Do you Yahoo!?
Exclusive Video Premiere - Britney Spears
http://launch.yahoo.com/promos/britneyspears/

====================================================================
Companion Site: http://www.corej2eepatterns.com
J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns
List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html
Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)



©2008 junlu.com - Jax Systems, LLC, U.S.A.