org.objectweb.jonas.cluster.daemon
Class ClusterDaemon

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

public class ClusterDaemon
extends java.lang.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 java.lang.String JONAS_CMD_NAME_UNIX
          JOnAS command name in unix environmment
static java.lang.String JONAS_CMD_NAME_WIN
          JOnAS command name in windows environmment
static int SLEEP_DELAY
          Sleep before exit of JVM
 
Method Summary
 void addServer(java.lang.String name, java.lang.String description, java.lang.String javaHome, java.lang.String jonasRoot, java.lang.String jonasBase)
          Add a server configuration (MBean interface)
 java.lang.String getJavaHome4Server(java.lang.String name)
          (MBean interface)
 java.lang.String getJonasBase4Server(java.lang.String name)
          (MBean interface)
 java.lang.String getJonasRoot4Server(java.lang.String name)
          (MBean interface)
 java.lang.String getName()
           
 java.lang.String getobjectName()
           
 java.lang.String getServersList()
           
 boolean iseventProvider()
           
 boolean isstateManageable()
           
 boolean isstatisticsProvider()
           
static void main(java.lang.String[] args)
          Main method
 void modifyServer(java.lang.String name, java.lang.String description, java.lang.String javaHome, java.lang.String jonasRoot, java.lang.String jonasBase)
          Modify a server configuration (MBean interface)
 int pingJOnAS(java.lang.String name)
          Ping a JOnAS instance (MBean interface)
 void reloadConfiguration()
          Reload the configuration (MBean interface)
 void removeServer(java.lang.String name)
          Remove a server configuration (MBean interface)
 void setobjectName(java.lang.String name)
          Sets the object name of this mbean
 void start(java.lang.String[] args)
          Main function
 java.lang.String startAllJOnAS(java.lang.String domainName, java.lang.String prm)
          Start all the JOnAS instances configured with auto-reboot
 void startJOnAS(java.lang.String name, java.lang.String domainName, java.lang.String prm)
          Start a JOnAS instance (MBean interface)
 java.lang.String stopAllJOnAS()
          Stop all the JOnAS instances
 void stopClusterDaemon()
          Stop the current instance
 void stopJOnAS(java.lang.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 java.lang.String JONAS_CMD_NAME_WIN
JOnAS command name in windows environmment

See Also:
Constant Field Values

JONAS_CMD_NAME_UNIX

public static final java.lang.String JONAS_CMD_NAME_UNIX
JOnAS command name in unix environmment

See Also:
Constant Field Values
Method Detail

start

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

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

main

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

Parameters:
args - the arguments of the cluster daemon

getobjectName

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

setobjectName

public void setobjectName(java.lang.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 java.lang.String getJavaHome4Server(java.lang.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 java.lang.String getJonasBase4Server(java.lang.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 java.lang.String getJonasRoot4Server(java.lang.String name)
(MBean interface)

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

getServersList

public java.lang.String getServersList()
Specified by:
getServersList in interface ClusterDaemonMBean
Returns:
the list of JOnAS instances

addServer

public void addServer(java.lang.String name,
                      java.lang.String description,
                      java.lang.String javaHome,
                      java.lang.String jonasRoot,
                      java.lang.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(java.lang.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(java.lang.String name,
                         java.lang.String description,
                         java.lang.String javaHome,
                         java.lang.String jonasRoot,
                         java.lang.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(java.lang.String name,
                       java.lang.String domainName,
                       java.lang.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(java.lang.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(java.lang.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 java.lang.String startAllJOnAS(java.lang.String domainName,
                                      java.lang.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 java.lang.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 java.lang.String getName()