sounds good to me

On Fri, 24 Jan 2003 19:20:20 +0000, Nicolas Dinh wrote
> Will the Singleton work?
> 
> Manager.getInstance() will be called by the 'Server' object during 
> construction.... however, this construction will be called every 
> time a session is started. This means that each Server object thread 
> will have its own instance of the Singleton Manager object since 
> it's creation is within the scope of the Server thread... right? So 
> this won't work....
> 
> The 'application' scope will essentially 1 Server object that will 
> be used to deal with all requests and will not be destroyed until 
> the AXIS servlet is shutdown.... is this correct? In this case,
>  there will only be 1 Server object with one Singleton Manager 
> object that will handle the resources. So I think by doing this, I 
> should get the behviour that I am looking for.
> 
> Regards,
> 
> Nicolas Dinh
> 
> >X-OriginalArrivalTime: 24 Jan 2003 19:09:47.0927 (UTC) 
> >FILETIME=[29ADC270:01C2C3DC]
> >
> >Who is making the Manager.getInstance() call ?
> >
> >Is it simpler by just declaring the object class in "application" scope ?
> >
> >Rgds, Ricky
> >
> >At 08:25 AM 1/24/2003 -0700, Wes Devauld wrote:
> >>The approach you can take is to create your 'Manager' classes as 
> >>singletons.
> >>  The idea is to make the constructors for the class private and then use
> >>Manager.getInstance() like calls to get a hold of the object.  An example
> >>
> >>
> >>
> >>
> >>class Manager {
> >>
> >>
> >>   private Manager theOne;
> >>
> >>
> >>   private Manager() {
> >>
> >>
> >>     //Create your object
> >>
> >>
> >>   }
> >>
> >>
> >>   public Manager getInstance() {
> >>
> >>
> >>      if(theOne == null) {
> >>
> >>
> >>          theOne = new Manager();
> >>
> >>
> >>      }
> >>
> >>
> >>      return theOne;
> >>
> >>
> >>   }
> >>
> >>
> >>}
> >>
> >>
> >>
> >>
> >>If you need to make sure the Manager object exits cleanly you will need to
> >>implement a ContextListener (implement 
> >>javax.servlet.ServletContextListener)
> >>in Tomcat, and configure your web.xml to use the Listener.  The listener
> >>recieves notification for events like the server shutting down.  You can
> >>then have the ContextListener call a Manager.shutdown() like call.
> >>
> >>
> >>
> >>
> >>Hope this helps,
> >>
> >>
> >>-W
> >>
> >>
> >>
> >>
> >> >
> >>
> >>
> >> > Hi,
> >>
> >>
> >> > This is my first time designing and implementing a system on AXIS. I'm
> >>
> >>
> >> > trying to design an application that will require the use of such
> >>
> >>
> >> > resources as sockets, database connections, file I/O. If i'm not
> >>
> >>
> >> > mistaken, whenever I invoke a method on an object that is running on
> >>
> >>
> >> > top of the AXIS servlet, that object is instantiated and threaded. For
> >>
> >>
> >> > example, I have, say a 'Server' object, that implements a logOn(),
> >>
> >>
> >> > logOff(), createUser(), listUsers() methods. These methods all connect
> >>
> >>
> >> > to a database and do some type of file logging. Since the 'Server'
> >>
> >>
> >> > object will be threaded for each session, I foresee issues in
> >>
> >>
> >> > resource conflicts/management and race conditions ('classical'
> >>
> >>
> >> > issues regarding multi-threaded design) when multiple
> >>
> >>
> >> > 'Server' threads have been spawned.  I had the idea of
> >>
> >>
> >> > using 'static' 'Manager' classes (DBManager, SocketManager) to
> >>
> >>
> >> > manage these pools of resources. Is there an approach to instantiate a
> >>
> >>
> >> > single, static 'Manager' class (that will not destroyed until the AXIS
> >>
> >>
> >> > servlet is shutdown) that these threaded objects can all commonly use
> >>
> >>
> >> > to do this type of resource management? Regards,
> >>
> >>
> >> > Nicolas Dinh
> >>
> >>
> >> >  The new  MSN 8:  smart spam protection and 2 months FREE*
> 
> _________________________________________________________________
> Add photos to your e-mail with MSN 8. Get 2 months FREE*.  
> http://join.msn.com/?page=features/featuredemail




Reply via email to