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

Reply via email to