ServiceLifecycle

Service Lifecycle and Dependencies

 

Service Lifecycle

JBoss recognises four special operations on your service's management interface.

  • create()

    - the service should do any setup and not reference another service

  • start()

    - the service can reference other services

  • stop()

    - destroys links to other services

  • destroy()

    - destroys itself

You will notice it is two phase. In most circumstances only one phase is required, usually

start

,

stop

to do work on other services, e.g. binding/unbinding to jndi.

NOTE: you do not have to implement all lifecyle operations

 

Dependencies

With the lifecycle operations implementated, you can setup dependencies between services.

i.e. JBoss ensures that the

create()

operation on the dependee service is invoked before the dependent service.

 

e.g. if the

DatabaseService

depends upon the

TransactionService

, the order of the operations at deployment will be:

TransactionService.create()
DBService.create()
TransactionService.start()
DBService.start()

and at undeployment in the reverse order

DBService.stop()
TransactionService.stop()
DBService.destroy()
TransactionService.destroy()

 

Notification based Dependencies

 

There are cases where it is desirable to associate the lifecycle of an MBean

with the the reception of certain JMX Notifications. Consider, for example, a service that needs to be started only after the reception of a notification indicating that the Tomcat connectors are active. For this kind of dependencies

you can use the BarrierController service.