Hot-deployable services are those which can be added to or removed from the running server. These are placed in the
$JBOSS_HOME/jboss-as-web/server/$PROFILE/deploy directory. Let’s have a look at a practical example of hot-deployment of services in JBoss.
Start JBoss if it isn’t already running and take a look at the
server/default/deploy directory. Remove the mail-service.xml file and watch the output from the server:
13:10:05,235 INFO [MailService] Mail service 'java:/Mail' removed from JNDI
Then replace the file and watch JBoss re-install the service:
13:58:54,331 INFO [MailService] Mail Service bound to java:/MailThis is hot-deployment in action.
Hot deployment of services in the server is controlled by the HDScanner MC bean configured in
$JBOSS_HOME/jboss-as-web/server/$PROFILE/deploy/hdscanner-jboss-beans.xml file. For the default server configuration the scanPeriod is set to 5 seconds:
<bean name="HDScanner" class="org.jboss.system.server.profileservice.hotdeploy.HDScanner"> <property name="deployer"><inject bean="ProfileServiceDeployer"/></property> <property name="profileService"><inject bean="ProfileService"/></property> <property name="scanPeriod">5000</property> <property name="scanThreadName">HDScanner</property> </bean>
The scanPeriod attribute controls the interval for thread which picks up the hot deployable changes.
Note
The changes to the
hdscanner-jboss-beans.xml file itself are hot deployable. No server restart is needed.