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 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), S. Ali Tokmen (JMX security)

Field Summary
static java.lang.String JONAS_CMD_NAME_UNIX_DEF
          JOnAS command name in unix environmment
static java.lang.String JONAS_CMD_NAME_WIN_DEF
          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, java.lang.String xprm, java.lang.String autoBoot, java.lang.String jonasCmd)
          Add a server configuration (MBean interface)
 java.lang.String getAutoBoot4Server(java.lang.String name)
           
 java.lang.String getJavaHome4Server(java.lang.String name)
          (MBean interface)
 java.lang.String getJonasBase4Server(java.lang.String name)
          (MBean interface)
 java.lang.String getJonasCmd4Server(java.lang.String name)
           
 java.lang.String getJonasRoot4Server(java.lang.String name)
          (MBean interface)
 java.lang.String getName()
           
 java.lang.String getobjectName()
           
 java.lang.String getServersList()
           
 java.lang.String getXprm4Server(java.lang.String name)
           
 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, java.lang.String xprm, java.lang.String autoBoot, java.lang.String jonasCmd)
          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_DEF

public static final java.lang.String JONAS_CMD_NAME_WIN_DEF
JOnAS command name in windows environmment

See Also:
Constant Field Values

JONAS_CMD_NAME_UNIX_DEF

public static final java.lang.String JONAS_CMD_NAME_UNIX_DEF
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

getJonasCmd4Server

public java.lang.String getJonasCmd4Server(java.lang.String name)
Specified by:
getJonasCmd4Server in interface ClusterDaemonMBean
Parameters:
name - JOnAS instance name
Returns:
the user command for a specified server name

getXprm4Server

public java.lang.String getXprm4Server(java.lang.String name)
Specified by:
getXprm4Server in interface ClusterDaemonMBean
Parameters:
name - JOnAS instance name
Returns:
the xprm for a specified server name

getAutoBoot4Server

public java.lang.String getAutoBoot4Server(java.lang.String name)
Specified by:
getAutoBoot4Server in interface ClusterDaemonMBean
Parameters:
name - JOnAS instance name
Returns:
the autoboot value 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,
                      java.lang.String xprm,
                      java.lang.String autoBoot,
                      java.lang.String jonasCmd)
               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
xprm - extra JVM parameters
autoBoot - automatic start
jonasCmd - user command
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,
                         java.lang.String xprm,
                         java.lang.String autoBoot,
                         java.lang.String jonasCmd)
                  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
xprm - extra JVM parameters
autoBoot - automatic start
jonasCmd - user command
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()