Hi Jens, > While Tony reported this today for services only (AXIS2-633) it seems Axis2 > does not have full lifecycle support. > > Since I was trying to come up with a fix for Axis2-595 I was looking for > something within Axis2 codebase which would help to do some cleanup during > shutdown. It turned out that the Axis2 deployment engine is not exposed for > clean shutdown and Handler#cleanup()/ TransportSender#cleanUp(MessageContext > msgContext) is never called.
Handler.cleanup() was never implemented and I thought it was removed! If not it should be .. we have an on-going discussion around some cleanup activity like that (look for a thread originated by Bill Nagy) but we agreed to do that post 1.0. TransportSender.cleanup() (Please refactor to cleanup instead of cleanUp) should indeed be called. > Before spending too many cycles in refactoring could someone from the axis2 > team comment on the current plans for full lifecycle support, especially > shutdown which can be called externally. > > Specifically I would like to > - Shutdown the deployment engine and with it the scheduler, +1. > - Ensure to call all cleanup() methods, We should be calling service.destroy(ServiceContext) and TransportSender.cleanup. (The latter should prolly take as an argument the config context?) > - Release all Classloader references during shutdown, +1 > - Remove the ShutdownHook from JMSSender and move it to a global > ShutdownHook which is used for standalone axis2 mode only (the sender should > deregister from JMS within cleanup() ). +1. I'd wait for Deepal to comment though- he's the one who did the cleanup stuff IIRC so I could be out of sync a bit ... In any case service.destroy(ServiceContext) should get called for sure; so maybe you can start there! Thanks, Sanjiva.
