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.
Comments