axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tony Dean (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2-341) service deployment
Date Fri, 16 Dec 2005 16:05:46 GMT
service deployment
------------------

         Key: AXIS2-341
         URL: http://issues.apache.org/jira/browse/AXIS2-341
     Project: Apache Axis 2.0 (Axis2)
        Type: Improvement
  Components: deployment  
    Versions: 0.94    
 Environment: not pertinent
    Reporter: Tony Dean


Original email:
I have been using the "public void init()" method of my service implemenation to perform one-time
initialization.  I can't remember how I stumbled across this functionality, but it would be
nice for you to define an implemenation interface that describes this functionality.  Maybe
you have and I just do not know about it.  When I tested my service, it appeared that the
engine called init() on every operation invocation.  I did not spend much time looking through
the code so I'm asking how you conceptually designed these semantics?  In particular, how
many instances of a particular service will be instantiated by the engine?  The init() method
should only be called once when the service is initally instantiated.  Will the engine be
able to quiesce unused service instances?  These are the semantics that are usually derived
from the container itself.  Also, suppose I have some initialization code that needs to be
done once and can be shared among all of my service instances (singleton functionality). 
How can I accomplish this... for instance, is there a way to tell how many instances of myself
have been instantiated?  Lastly, is there an analogous "public void destroy()" that can be
used to release any required resources obtained by my service?

I'd like to see the following:
1. ServiceImplInterface
public interface ServiceImplInterface {
   public void init();
   public void destroy();
}

2. init is called when the service is instantiated... should handle one-time initialization
for the service.  destroy is called when the service is undeployed to release any acquired
resources.

3. can we be intelligent about the number of instances that are created for a particular service?
 if not heavily used, we need to reuse existing instances instead of creating additional ones.
 otherwise, we all should create singleton services so that the system does not grow uncontrollable.

4. if we are allowed to create multiple instances of our services, there may be times when
we want to do one-time initialization for as a whole for all of our services instances...
is there a way to determine when the last instance is being undeployed (destroyed) so that
this singleton-type of resource acquisition can be destroyed when the last instance is going
away?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message