org.objectweb.jonas.cluster.daemon
Class ClusterDaemon

java.lang.Object
  extended by org.objectweb.jonas.cluster.daemon.ClusterDaemon
All Implemented Interfaces:
ClusterDaemonMBean

public class ClusterDaemon
extends Object
implements ClusterDaemonMBean

ClusterDaemon is provided to control JOnAS instances remotely. The ClusterDaemon is an independent Java program, and runs on every node (machine) in the cluster. It receives remote commands (JMX), and does something such as starting or stopping JOnAS instances.

Author:
zhengzz (initial version for PKUAS), Benoit Pelletier (integration in JOnAS)

Field Summary
static String JONAS_CMD_NAME_UNIX
          JOnAS command name in unix environmment
static String JONAS_CMD_NAME_WIN
          JOnAS command name in windows environmment
static int SLEEP_DELAY
          Sleep before exit of JVM
 
Method Summary
 void addServer(String name, String description, String javaHome, String jonasRoot, String jonasBase)
          Add a server configuration (MBean interface)
 void buildRuntimeInfo()
           
 Hashtable<String,String> dynamicHostAttributes()
           
 ArrayList getControlledServersNames()
           
 Hashtable<String,String> getDynamicHostAttributes()
           
 String getJavaHome4Server(String name)
          (MBean interface)
 String getJmxUrl()
          get the cluster daemon jmx url
 String getJonasBase4Server(String name)
          (MBean interface)
 String getJonasRoot4Server(String name)
          (MBean interface)
 String getName()
           
 String getobjectName()
           
 String getOperatingSystemAvailableProcessors()
           
 String getOperatingSystemName()
           
 String getOperatingSystemVersion()
           
 String getRunTimeSpecVendor()
           
 String getRunTimeSpecVersion()
           
 String getRunTimeVmName()
           
 String getRunTimeVmVendor()
           
 String getRunTimeVmVersion()
           
 void initHostInfos()
           
 boolean iseventProvider()
           
 boolean isstateManageable()
           
 boolean isstatisticsProvider()
           
static void main(String[] args)
          Main method
 void modifyServer(String name, String description, String javaHome, String jonasRoot, String jonasBase)
          Modify a server configuration (MBean interface)
 int pingJOnAS(String name)
          Ping a JOnAS instance (MBean interface)
 void reloadConfiguration()
          Reload the configuration (MBean interface)
 void removeServer(String name)
          Remove a server configuration (MBean interface)
 ArrayList serversNames()
           
 void setobjectName(String name)
          Sets the object name of this mbean
 void setOperatingSystemAvailableProcessors(String operatingSystemAvailableProcessors)
           
 void setOperatingSystemName(String operatingSystemName)
           
 void setOperatingSystemVersion(String operatingSystemVersion)
           
 void setRunTimeSpecVendor(String runTimeSpecVendor)
           
 void setRunTimeSpecVersion(String runTimeSpecVersion)
           
 void setRunTimeVmName(String runTimeVmName)
           
 void setRunTimeVmVendor(String runTimeVmVendor)
           
 void setRunTimeVmVersion(String runTimeVmVersion)
           
 void start(String[] args)
          Main function
 String startAllJOnAS(String domainName, String prm)
          Start all the JOnAS instances configured with auto-reboot
 void startJOnAS(String name, String domainName, String prm)
          Start a JOnAS instance (MBean interface)
 String stopAllJOnAS()
          Stop all the JOnAS instances
 void stopClusterDaemon()
          Stop the current instance
 void stopJOnAS(String name)
          Stop a JOnAS instance (MBean interface)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SLEEP_DELAY

public static final int SLEEP_DELAY
Sleep before exit of JVM

See Also:
Constant Field Values

JONAS_CMD_NAME_WIN

public static final String JONAS_CMD_NAME_WIN
JOnAS command name in windows environmment

See Also:
Constant Field Values

JONAS_CMD_NAME_UNIX

public static final String JONAS_CMD_NAME_UNIX
JOnAS command name in unix environmment

See Also:
Constant Field Values
Method Detail

buildRuntimeInfo

public void buildRuntimeInfo()

start

public void start(String[] args)
           throws ClusterDaemonException
Main function

Parameters:
args - arguments list
Throws:
ClusterDaemonException - if an error occurs

main

public static void main(String[] args)
Main method

Parameters:
args - the arguments of the cluster daemon

getobjectName

public String getobjectName()
Specified by:
getobjectName in interface ClusterDaemonMBean
Returns:
Object Name

setobjectName

public void setobjectName(String name)
Sets the object name of this mbean

Specified by:
setobjectName in interface ClusterDaemonMBean
Parameters:
name - the Object Name

iseventProvider

public boolean iseventProvider()
Specified by:
iseventProvider in interface ClusterDaemonMBean
Returns:
true if it is an event provider

isstateManageable

public boolean isstateManageable()
Specified by:
isstateManageable in interface ClusterDaemonMBean
Returns:
true if this managed object implements J2EE State Management Model

isstatisticsProvider

public boolean isstatisticsProvider()
Specified by:
isstatisticsProvider in interface ClusterDaemonMBean
Returns:
true if this managed object implements the J2EE StatisticProvider Model

getJavaHome4Server

public String getJavaHome4Server(String name)
(MBean interface)

Specified by:
getJavaHome4Server in interface ClusterDaemonMBean
Parameters:
name - JOnAS instance name
Returns:
the JAVA_HOME for a specified server name

getJonasBase4Server

public String getJonasBase4Server(String name)
(MBean interface)

Specified by:
getJonasBase4Server in interface ClusterDaemonMBean
Parameters:
name - JOnAS instance name
Returns:
the JONAS_BASE for a specified server name

getJonasRoot4Server

public String getJonasRoot4Server(String name)
(MBean interface)

Specified by:
getJonasRoot4Server in interface ClusterDaemonMBean
Parameters:
name - JOnAS instance name
Returns:
the JONAS_ROOT for a specified server name

addServer

public void addServer(String name,
                      String description,
                      String javaHome,
                      String jonasRoot,
                      String jonasBase)
               throws ClusterDaemonException
Add a server configuration (MBean interface)

Specified by:
addServer in interface ClusterDaemonMBean
Parameters:
name - server name
description - server description
javaHome - JAVA_HOME dir
jonasBase - JONAS_BASE dir
jonasRoot - JONAS_ROOT dir
Throws:
ClusterDaemonException - if an error occurs

removeServer

public void removeServer(String name)
                  throws ClusterDaemonException
Remove a server configuration (MBean interface)

Specified by:
removeServer in interface ClusterDaemonMBean
Parameters:
name - server name
Throws:
ClusterDaemonException - if an error occurs

modifyServer

public void modifyServer(String name,
                         String description,
                         String javaHome,
                         String jonasRoot,
                         String jonasBase)
                  throws ClusterDaemonException
Modify a server configuration (MBean interface)

Specified by:
modifyServer in interface ClusterDaemonMBean
Parameters:
name - server name
description - server description
javaHome - JAVA_HOME dir
jonasBase - JONAS_BASE dir
jonasRoot - JONAS_ROOT dir
Throws:
ClusterDaemonException - if an error occurs

reloadConfiguration

public void reloadConfiguration()
                         throws ClusterDaemonException
Reload the configuration (MBean interface)

Specified by:
reloadConfiguration in interface ClusterDaemonMBean
Throws:
ClusterDaemonException - if an error occurs

startJOnAS

public void startJOnAS(String name,
                       String domainName,
                       String prm)
                throws ClusterDaemonException
Start a JOnAS instance (MBean interface)

Specified by:
startJOnAS in interface ClusterDaemonMBean
Parameters:
name - instance name
domainName - domain name
prm - extra parameters
Throws:
ClusterDaemonException - if an error occurs

stopJOnAS

public void stopJOnAS(String name)
               throws ClusterDaemonException
Stop a JOnAS instance (MBean interface)

Specified by:
stopJOnAS in interface ClusterDaemonMBean
Parameters:
name - instance name
Throws:
ClusterDaemonException - if an error occurs

pingJOnAS

public int pingJOnAS(String name)
              throws ClusterDaemonException
Ping a JOnAS instance (MBean interface)

Specified by:
pingJOnAS in interface ClusterDaemonMBean
Parameters:
name - instance name
Returns:
exit code of the ping (0 ok, 1 ko)
Throws:
ClusterDaemonException - if an error occurs

startAllJOnAS

public String startAllJOnAS(String domainName,
                            String prm)
Start all the JOnAS instances configured with auto-reboot

Specified by:
startAllJOnAS in interface ClusterDaemonMBean
Parameters:
domainName - domain name
prm - extra parameters
Returns:
the nodes list with an indicator started/starting failed

stopAllJOnAS

public String stopAllJOnAS()
Stop all the JOnAS instances

Specified by:
stopAllJOnAS in interface ClusterDaemonMBean
Returns:
the nodes list with an indicator stopped/stopping failed

stopClusterDaemon

public void stopClusterDaemon()
Stop the current instance

Specified by:
stopClusterDaemon in interface ClusterDaemonMBean

getName

public String getName()

getControlledServersNames

public ArrayList getControlledServersNames()
Specified by:
getControlledServersNames in interface ClusterDaemonMBean
Returns:
cluster daemon controlled server names.

serversNames

public ArrayList serversNames()
Specified by:
serversNames in interface ClusterDaemonMBean
Returns:

getJmxUrl

public String getJmxUrl()
get the cluster daemon jmx url

Specified by:
getJmxUrl in interface ClusterDaemonMBean
Returns:
clusterd jmx url

getOperatingSystemAvailableProcessors

public String getOperatingSystemAvailableProcessors()
Specified by:
getOperatingSystemAvailableProcessors in interface ClusterDaemonMBean
Returns:
Operating system processors number

setOperatingSystemAvailableProcessors

public void setOperatingSystemAvailableProcessors(String operatingSystemAvailableProcessors)

getOperatingSystemName

public String getOperatingSystemName()
Specified by:
getOperatingSystemName in interface ClusterDaemonMBean
Returns:
OS name

setOperatingSystemName

public void setOperatingSystemName(String operatingSystemName)

getOperatingSystemVersion

public String getOperatingSystemVersion()
Specified by:
getOperatingSystemVersion in interface ClusterDaemonMBean
Returns:
OS version

setOperatingSystemVersion

public void setOperatingSystemVersion(String operatingSystemVersion)

getRunTimeSpecVendor

public String getRunTimeSpecVendor()
Specified by:
getRunTimeSpecVendor in interface ClusterDaemonMBean
Returns:
Spec vendor

setRunTimeSpecVendor

public void setRunTimeSpecVendor(String runTimeSpecVendor)

getRunTimeSpecVersion

public String getRunTimeSpecVersion()
Specified by:
getRunTimeSpecVersion in interface ClusterDaemonMBean
Returns:
Spec version

setRunTimeSpecVersion

public void setRunTimeSpecVersion(String runTimeSpecVersion)

getRunTimeVmName

public String getRunTimeVmName()
Specified by:
getRunTimeVmName in interface ClusterDaemonMBean
Returns:
the Vm name

setRunTimeVmName

public void setRunTimeVmName(String runTimeVmName)

getRunTimeVmVendor

public String getRunTimeVmVendor()
Specified by:
getRunTimeVmVendor in interface ClusterDaemonMBean
Returns:
Vm vendor

setRunTimeVmVendor

public void setRunTimeVmVendor(String runTimeVmVendor)

getRunTimeVmVersion

public String getRunTimeVmVersion()
Specified by:
getRunTimeVmVersion in interface ClusterDaemonMBean
Returns:
Vm version

setRunTimeVmVersion

public void setRunTimeVmVersion(String runTimeVmVersion)

getDynamicHostAttributes

public Hashtable<String,String> getDynamicHostAttributes()
Specified by:
getDynamicHostAttributes in interface ClusterDaemonMBean
Returns:
hashtable with dynamic attributes keys and values.

initHostInfos

public void initHostInfos()

dynamicHostAttributes

public Hashtable<String,String> dynamicHostAttributes()
Specified by:
dynamicHostAttributes in interface ClusterDaemonMBean
Returns:
String values of dynamic host infos.


Copyright © 2007 OW2 Consortium. All Rights Reserved.