|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectorg.oddjob.framework.BaseComponent
org.oddjob.jmx.JMXClientJob
public class JMXClientJob
JMXServerJob.
This job allows remote jobs to be monitored and controlled from
a local Oddjob.
This job will run until it is manually stopped or until the remote server is stopped. If this job is stopped it's state will be COMPLETE, if the server stops this job's state will be INCOMPLETE.
To access and control jobs on a server from within a configuration file this
client job must have an id. If the client has an id of 'freds-pc'
and the job on the server has an id of 'freds-job'. The job on
the server can be accessed from the client using the expression
${freds-pc/freds-job}.
<jmx:client id="freds-pc" name="Connection to Freds PC" url="service:jmx:rmi:///jndi/rmi://${hosts.freds-pc}/freds-oddjob-server" xmlns:jmx="http://rgordon.co.uk/oddjob/jmx"/>
<oddjob>
<job>
<sequential>
<jobs>
<jmx:client id="freds-pc" name="Oddjob Client" url="service:jmx:rmi:///jndi/rmi://${hosts.freds-pc}/freds-oddjob-server" xmlns:jmx="http://rgordon.co.uk/oddjob/jmx"/>
<run job="${freds-pc/server-jobs/greeting}"/>
<stop job="${freds-pc}"/>
</jobs>
</sequential>
</job>
</oddjob>
The run job starts the server job but doesn't wait for it to complete.
We would need to add a wait job for that.
<jmx:client url="service:jmx:rmi:///jndi/rmi://localhost/my-oddjob" xmlns:jmx="http://rgordon.co.uk/oddjob/jmx">
<environment>
<jmx:client-credentials username="username" password="password"/>
</environment>
</jmx:client>
<oddjob>
<job>
<sequential>
<jobs>
<jmx:client id="freds-pc" name="Oddjob Client" url="service:jmx:rmi:///jndi/rmi://${hosts.freds-pc}/freds-oddjob-server" xmlns:jmx="http://rgordon.co.uk/oddjob/jmx"/>
<scheduling:trigger on="${freds-pc/server-jobs/greeting}" xmlns:scheduling="http://rgordon.co.uk/oddjob/scheduling">
<job>
<sequential>
<jobs>
<echo id="local-job">Server Job Ran!</echo>
<stop job="${freds-pc}"/>
</jobs>
</sequential>
</job>
</scheduling:trigger>
</jobs>
</sequential>
</job>
</oddjob>
| Field Summary | |
|---|---|
static long |
DEFAULT_LOG_POLLING_INTERVAL
|
| Fields inherited from class org.oddjob.framework.BaseComponent |
|---|
iconHelper |
| Fields inherited from interface org.oddjob.logging.LogArchiver |
|---|
MAX_HISTORY, NO_LOG_AVAILABLE |
| Constructor Summary | |
|---|---|
JMXClientJob()
|
|
| Method Summary | |
|---|---|
void |
addConsoleListener(LogListener l,
Object component,
long last,
int max)
Add a listener to the archiver which will receive all missed events. |
void |
addLogListener(LogListener l,
Object component,
LogLevel level,
long last,
int history)
Add a listener to the archiver which will receive all missed events. |
void |
addStructuralListener(StructuralListener listener)
Add a listener. |
String |
consoleIdFor(Object component)
Get the console id for a given component. |
protected void |
fireDestroyedState()
Internal method to fire state. |
Map<String,?> |
getEnvironment()
|
long |
getHeartbeat()
|
long |
getLogPollingInterval()
|
int |
getMaxConsoleLines()
|
int |
getMaxLoggerLines()
|
String |
getName()
Get the name. |
protected ServiceStateChanger |
getStateChanger()
|
String |
getUrl()
Get the JMX service URL. |
boolean |
hardReset()
Perform a hard reset on the job. |
protected org.apache.log4j.Logger |
logger()
|
String |
loggerName()
|
protected void |
onDestroy()
Subclasses override this method to clear up resources. |
void |
onInitialised()
Subclasses override this method to perform post creation initialisation. |
RemoteDirectory |
provideBeanDirectory()
Get the BeanDirectory. |
void |
removeConsoleListener(LogListener l,
Object component)
Remove the LogListener. |
void |
removeLogListener(LogListener l,
Object component)
Remove the LogListener. |
void |
removeStructuralListener(StructuralListener listener)
Remove a listener. |
void |
run()
|
void |
setEnvironment(Map<String,?> environment)
|
void |
setHeartbeat(long heartbeat)
|
void |
setLogPollingInterval(long logPollingInterval)
|
void |
setMaxConsoleLines(int maxConsoleLines)
|
void |
setMaxLoggerLines(int maxLoggerLines)
|
void |
setName(String name)
Set the name |
void |
setUrl(String lookup)
Set naming service url. |
boolean |
softReset()
Perform a soft reset on the job. |
protected ServiceStateHandler |
stateHandler()
|
void |
stop()
Stop executing. |
String |
toString()
|
| Methods inherited from class org.oddjob.framework.BaseComponent |
|---|
addIconListener, addPropertyChangeListener, addStateListener, configure, destroy, firePropertyChange, getArooaSession, iconForId, initialise, lastStateEvent, onConfigured, removeIconListener, removePropertyChangeListener, removeStateListener, save, save, setArooaContext, setArooaSession |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.oddjob.Stateful |
|---|
addStateListener, lastStateEvent, removeStateListener |
| Field Detail |
|---|
public static final long DEFAULT_LOG_POLLING_INTERVAL
| Constructor Detail |
|---|
public JMXClientJob()
| Method Detail |
|---|
protected ServiceStateHandler stateHandler()
stateHandler in class BaseComponentprotected ServiceStateChanger getStateChanger()
public String getName()
public void setName(String name)
name - The name.protected org.apache.log4j.Logger logger()
logger in class BaseComponentpublic String loggerName()
loggerName in interface LogEnabledpublic void setUrl(String lookup)
url - The name of the remote node in the naming service.public String getUrl()
public void addLogListener(LogListener l,
Object component,
LogLevel level,
long last,
int history)
LogArchiverEvent numbers begin at 0. To recieve all events, last must be -1.
addLogListener in interface LogArchiverl - The logListener which will recieve the events.level - The level of events required.last - The last event number recieved. The LogArchive will
not send messages from before this number.history - The maximum messages to send up to the most recent.
public void removeLogListener(LogListener l,
Object component)
LogArchiver
removeLogListener in interface LogArchiverl - The LogListener.
public void addConsoleListener(LogListener l,
Object component,
long last,
int max)
ConsoleArchiver
addConsoleListener in interface ConsoleArchiverl - The logListener which will recieve the events.component - The component whose console to receive events for.last - The last event number recieved. The LogArchive will
not send messages from before this number.max - The maximum messages to send up to the most recent.
public void removeConsoleListener(LogListener l,
Object component)
ConsoleArchiver
removeConsoleListener in interface ConsoleArchiverl - The LogListener.public String consoleIdFor(Object component)
ConsoleArchiver
consoleIdFor in interface ConsoleArchivercomponent - The component.
public void onInitialised()
BaseComponent
onInitialised in class BaseComponentpublic void run()
run in interface Runnablepublic void stop()
Stoppable
stop in interface Stoppablepublic RemoteDirectory provideBeanDirectory()
BeanDirectoryOwnerBeanDirectory. This method may return null if
the BeanDirectory isn't available.
provideBeanDirectory in interface BeanDirectoryOwnerprovideBeanDirectory in interface RemoteDirectoryOwnerBeanDirectory or null.public void addStructuralListener(StructuralListener listener)
Structural
addStructuralListener in interface Structurallistener - The listener.public void removeStructuralListener(StructuralListener listener)
Structural
removeStructuralListener in interface Structurallistener - The listener.public boolean softReset()
softReset in interface Resetablepublic boolean hardReset()
hardReset in interface Resetablepublic int getMaxConsoleLines()
public void setMaxConsoleLines(int maxConsoleLines)
public int getMaxLoggerLines()
public void setMaxLoggerLines(int maxLoggerLines)
public long getLogPollingInterval()
public void setLogPollingInterval(long logPollingInterval)
public String toString()
toString in class Objectpublic Map<String,?> getEnvironment()
public void setEnvironment(Map<String,?> environment)
public long getHeartbeat()
public void setHeartbeat(long heartbeat)
protected void onDestroy()
BaseComponent
onDestroy in class BaseComponentprotected void fireDestroyedState()
fireDestroyedState in class BaseComponent
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||