[jboss-user] [Clustering/JBoss] - How to auto-start my singleton service?
karanmg
do-not-reply at jboss.com
Tue Mar 27 20:31:58 EDT 2007
I am using JDK 5, JBoss 4.0.5GA and Windows. I'm fairly familiar with clustering, but barely with MBeans and sar archives.
I have gone through several posts, documentation and the wiki, and finally
managed to make a MBean service. I deployed the sar to farm/ it gets copied to all nodes. When I go to the web-console, I can see that the service has been successfully deployed on both the nodes. The jboss-service.xml of the sar contains:
| <mbean code="com.tcore.jboss.service.SingletonServiceExample"
| name="tcore.services:service=SingletonServiceExample">
| <depends>jboss.ha:service=HASingletonDeployer,type=Barrier</depends>
| <attribute name="Message">Message in the XML</attribute>
| </mbean>
|
Shouldn't the service automatically start on whichever node is the master?
I can manually invoke the start() operation which prints a diagnostic message to let me know that the service has started. But how do I make it work so that whichever node becomes master the service starts and when it loses master status, the service stops?
Following is the service code:
| package com.tcore.jboss.service;
|
| public interface SingletonServiceExampleMBean
| {
| public String getMessage();
| public void setMessage(String message);
|
| public void printMessage();
| public boolean isTheMasterNode();
|
| public void startSingleton() throws Exception;
| public void stopSingleton();
| }
|
| package com.tcore.jboss.service;
|
| public class SingletonServiceExample implements SingletonServiceExampleMBean
| {
|
| private String message;
| private boolean theMasterNode = false;
|
| public void startSingleton() throws Exception
| {
| theMasterNode = true;
| message = "I have been started! " + theMasterNode;
| System.out.println("Starting with message: " + message);
| }
|
| public void stopSingleton()
| {
| theMasterNode = false;
| message = "I have been stopped!" + theMasterNode;
| System.out.println("Stopping with message: " + message);
| }
|
| public String getMessage()
| { return message; }
|
| public void setMessage(String message)
| { this.message = message; }
|
| public void printMessage()
| { System.out.println(message); }
|
| public boolean isTheMasterNode()
| { return theMasterNode; }
|
| }
|
Thanks!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4032270#4032270
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4032270
More information about the jboss-user
mailing list