axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zhang, Frank" <frank_zh...@merck.com>
Subject RE: AXIS App. Design/Architecture
Date Fri, 24 Jan 2003 19:34:16 GMT
You could have one instance of a singleton per classloader depends if the
class is 'visible' to the parent classloader. 

Frank

-----Original Message-----
From: Daleiden, Mike [mailto:mike.daleiden@aaaresponse.com]
Sent: Friday, January 24, 2003 2:24 PM
To: axis-user@xml.apache.org
Subject: RE: AXIS App. Design/Architecture


Singleton will work as well.  You would only have one instance of the
singleton class PER JVM, not per thread.  The biggest issue with a
singleton is making sure that its methods are thread-safe.  The best way
to do this is to write very small, atomic methods and protect critical
sections of a method body with synchronized() blocks.

-----Original Message-----
From: Nicolas Dinh [mailto:dubstar27@hotmail.com] 
Sent: Friday, January 24, 2003 2:20 PM
To: axis-user@xml.apache.org
Subject: Re: AXIS App. Design/Architecture


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.&nbsp;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&nbsp;foresee 
>> > issues&nbsp;in
>>
>>
>> > resource conflicts/management and race conditions&nbsp;('classical'
>>
>>
>> > issues&nbsp;regarding multi-threaded design)&nbsp;when multiple
>>
>>
>> > 'Server' threads have been spawned.&nbsp; I had the idea of
>>
>>
>> > using&nbsp;'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
>>
>>
>> > &nbsp;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



------------------------------------------------------------------------------
Notice:  This e-mail message, together with any attachments, contains information of Merck
& Co., Inc. (Whitehouse Station, New Jersey, USA) that may be confidential, proprietary
copyrighted and/or legally privileged, and is intended solely for the use of the individual
or entity named in this message.  If you are not the intended recipient, and have received
this message in error, please immediately return this by e-mail and then delete it.

==============================================================================


Mime
View raw message