com.sun.slamd.job
Class Job

java.lang.Object
  extended by com.sun.slamd.job.Job
All Implemented Interfaces:
java.lang.Comparable

public class Job
extends java.lang.Object
implements java.lang.Comparable

This class defines a job that can be run by the SLAMD server. Most of the information in this class is used for administrative purposes. All of the actual processing is defined in the job class associated with each job implementation -- this class merely handles starting the appropriate number of job threads on the appropriate set of clients.

Author:
Neil A. Wilson

Field Summary
static java.lang.String ELEMENT_ACTUAL_DURATION
          The name of the encoded element that holds the actual duration.
static java.lang.String ELEMENT_ACTUAL_START_TIME
          The name of the encoded element that holds the actual start time.
static java.lang.String ELEMENT_ACTUAL_STOP_TIME
          The name of the encoded element that holds the actual stop time.
static java.lang.String ELEMENT_COLLECTION_INTERVAL
          The name of the encoded element that holds the statistics collection interval.
static java.lang.String ELEMENT_COMMENTS
          The name of the encoded element that holds the job comments.
static java.lang.String ELEMENT_DEPENDENCIES
          The name of the encoded element that holds the set of dependencies.
static java.lang.String ELEMENT_DESCRIPTION
          The name of the encoded element that holds the job description.
static java.lang.String ELEMENT_DISPLAY_IN_READ_ONLY
          The name of the encoded element that indicates whether this job should be displayed in restricted read-only mode.
static java.lang.String ELEMENT_DURATION
          The name of the encoded element that holds the scheduled duration.
static java.lang.String ELEMENT_FOLDER
          The name of the encoded element that holds the folder name.
static java.lang.String ELEMENT_JOB_CLASS
          The name of the encoded element that holds the job class name.
static java.lang.String ELEMENT_JOB_GROUP
          The name of the encoded element that holds the job group name.
static java.lang.String ELEMENT_JOB_ID
          The name of the encoded element that holds the job ID.
static java.lang.String ELEMENT_JOB_STATE
          The name of the encoded element that holds the job state.
static java.lang.String ELEMENT_LEGACY_MONITOR_STATS
          The name of the encoded element that holds legacy resource monitor statistical data (just stat trackers, not resource monitor stats).
static java.lang.String ELEMENT_LOG_MESSAGES
          The name of the encoded element that holds the log messages.
static java.lang.String ELEMENT_MONITOR_CLIENTS
          The name of the encoded element that holds the requested resource monitor clients.
static java.lang.String ELEMENT_MONITOR_CLIENTS_IF_AVAILABLE
          The name of the encoded element that indicates whether the clients should be monitored if they are running resource monitor clients.
static java.lang.String ELEMENT_NOTIFY_ADDRESSES
          The name of the encoded element that holds the e-mail addresses of the users to notify on completion.
static java.lang.String ELEMENT_NUM_CLIENTS
          The name of the encoded element that holds the number of clients.
static java.lang.String ELEMENT_OPTIMIZING_JOB_ID
          The name of the encoded element that holds the optimizing job ID.
static java.lang.String ELEMENT_PARAMETERS
          The name of the encoded element that holds the job parameters.
static java.lang.String ELEMENT_REQUESTED_CLIENTS
          The name of the encoded element that holds the requested clients.
static java.lang.String ELEMENT_RESOURCE_MONITOR_STATS
          The name of the encoded element that holds resource monitor statistics.
static java.lang.String ELEMENT_START_TIME
          The name of the encoded element that holds the scheduled start time.
static java.lang.String ELEMENT_STATS
          The name of the encoded element that holds the job statistics.
static java.lang.String ELEMENT_STOP_TIME
          The name of the encoded element that holds the scheduled stop time.
static java.lang.String ELEMENT_THREAD_STARTUP_DELAY
          The name of the encoded element that holds the thread startup delay.
static java.lang.String ELEMENT_THREADS_PER_CLIENT
          The name of the encoded element that holds the number of threads per client.
static java.lang.String ELEMENT_WAIT_FOR_CLIENTS
          The name of the encoded element that indicates whether to wait for clients to become available.
 
Constructor Summary
Job(SLAMDServer slamdServer, java.lang.String jobThreadClassName)
          Creates a new instance of the job based on the specified job thread class.
Job(SLAMDServer slamdServer, java.lang.String jobThreadClassName, int numClients, int threadsPerClient, int threadStartupDelay, java.util.Date startTime, java.util.Date stopTime, int duration, int collectionInterval, ParameterList parameters, boolean displayInReadOnlyMode)
          Creates a new instance of the job based on the specified job thread class that may be actually used to run the job.
 
Method Summary
 void addLogMessage(java.lang.String message)
          Adds the specified message to the set of messages logged during this job's execution.
 void clientDone(ClientConnection clientConnection, JobCompletedMessage jobCompletedMessage)
          Indicates that the specified client has completed its processing for this job.
 int compareTo(java.lang.Object o)
          Compares this job with the provided object to determine the relative order of the two in a sorted list.
static Job decode(SLAMDServer slamdServer, byte[] encodedJob)
          Decodes the provided byte array as a SLAMD job.
static Job decodeSummaryJob(SLAMDServer slamdServer, byte[] encodedJob)
          Decodes the provided byte array as a SLAMD job, but only decodes a minimal set of data for display on summary pages.
 boolean displayInReadOnlyMode()
          Indicates whether this job should be displayed in restricted read-only mode.
 boolean doneRunning()
          Indicates whether all possible processing has been done for this job.
 byte[] encode()
          Encodes this job to a byte array suitable for storage in the database.
 java.util.ArrayList getActiveClients()
          Retrieves the set of clients that are currently being used to run this job.
 java.util.ArrayList getActiveMonitorClients()
          Retrieves the set of resource monitor clients that are currently being used in conjunction with this job.
 int getActualDuration()
          Retrieves the length of time in seconds that the job was actually running.
 java.util.Date getActualStartTime()
          Retrieves the time at which this job actually started running.
 java.util.Date getActualStopTime()
          Retrieves the time that the job actually stopped running.
 ClientConnection[] getClientConnections()
          Retrieves the set of client connections that have been selected to use to run this job.
 ParameterList getClientSideParameterStubs()
          Retrieves a list of all the parameters that can be used to configure the behavior of this job.
 int getCollectionInterval()
          Retrieves the length of time in seconds that should be used as the statistics collection interval.
 java.lang.String[] getDependencies()
          Retrieves the job IDs of the jobs that must complete before this job will be eligible for processing.
 int getDuration()
          Retrieves the maximum amount of time that this job should run.
 java.lang.String getFolderName()
          Retrieves the name of the folder in which this job is located.
 JobClass getJobClass()
          Retrieves an instance of the job class with which this job is associated.
 java.lang.String getJobClassDescription()
          Retrieves a description of the job class.
 java.lang.String getJobClassName()
          Retrieves the name of the Java class that this job will execute to perform the work.
 java.lang.String getJobComments()
          Retrieves the user-specified comments for this job.
 java.lang.String getJobDescription()
          Retrieves a user-specified description for this job.
 java.lang.String getJobGroup()
          Retrieves the name of the job group with which this job is associated.
 java.lang.String getJobID()
          Retrieves the job ID associated with this job.
 java.lang.String getJobName()
          Retrieves the name of this job.
 int getJobState()
          Retrieves the state of the current job.
 java.lang.String getJobStateString()
          Retrieves a string description of the current job state.
 java.lang.String[] getLogMessages()
          Retrieves the set of messages logged during the job's execution.
 java.lang.String[] getNotifyAddresses()
          Retrieves the e-mail addresses of the users that should be notified when this job has completed running.
 int getNumberOfClients()
          Retrieves the number of clients that should be used to run this job.
 java.lang.String getOptimizingJobID()
          Retrieves the ID of the optimizing job with which this job is associated.
 ParameterList getParameterList()
          Retrieves a list of the parameters that have been configured for this job.
 ParameterList getParameterStubs()
          Retrieves a list of all the parameters that can be used to configure the behavior of this job.
 RealTimeJobStats getRealTimeStats()
          Retrieves the real-time stat data associated with this job.
 java.lang.String[] getRequestedClients()
          Retrieves the set of clients that have been requested to run this job.
 ResourceMonitor[] getResourceMonitorClasses()
          Retrieves the set of resource monitor class instances for which statistics are available with this job.
 java.lang.String[] getResourceMonitorClients()
          Retrieves the set of resource monitor clients that have been requested for this job.
 ResourceMonitorStatTracker[] getResourceMonitorStatTrackers()
          Retrieves the set of all resource monitor stat trackers associated with this job.
 ResourceMonitorStatTracker[] getResourceMonitorStatTrackers(java.lang.String displayName)
          Retrieves the set of all resource monitor stat trackers associated with this job that have the specified display name.
 ResourceMonitorStatTracker[] getResourceMonitorStatTrackers(java.lang.String displayName, java.lang.String clientID)
          Retrieves the set of all resource monitor stat trackers associated with this job that have the specified display name and client ID.
 ResourceMonitorStatTracker[] getResourceMonitorStatTrackersForClass(java.lang.String className)
          Retrieves the set of all resource monitor stat trackers associated with this job that were captured using the specified resource monitor class.
 java.lang.String[] getResourceStatTrackerClientIDs()
          Retrieves the client IDs of all the clients that contributed resource monitor information.
 java.lang.String[] getResourceStatTrackerNames()
          Retrieves the display names of all the resource monitor stat trackers associated with this job.
 java.util.LinkedHashMap getResourceStatTrackerNamesAndClasses()
          Retrieves the display names of all the resource monitor stat trackers associated with this job, in a map that links those names to the names of the associated resource monitor class.
 StatTracker[] getResourceStatTrackers()
          Deprecated. Use the getResourceMonitorStatTrackers method instead, which will include resource monitor information along with the statistical data.
 StatTracker[] getResourceStatTrackers(java.lang.String displayName)
          Retrieves the set of all resource monitor stat trackers associated with this job that have the specified display name.
 StatTracker[] getResourceStatTrackers(java.lang.String displayName, java.lang.String clientID)
          Retrieves the set of all resource monitor stat trackers associated with this job that have the specified display name and client ID.
 java.util.Date getStartTime()
          Retrieves the time that this job should start.
 java.lang.String[] getStatTrackerClientIDs()
          Retrieves the client IDs of all the clients that contributed stat tracker information.
 java.lang.String[] getStatTrackerNames()
          Retrieves the display names of all the stat trackers associated with this job.
 StatTracker[] getStatTrackers()
          Retrieves the set of all stat trackers associated with this job.
 StatTracker[] getStatTrackers(java.lang.String displayName)
          Retrieves the set of all stat trackers associated with this job that have the specified display name.
 StatTracker[] getStatTrackers(java.lang.String displayName, java.lang.String clientID)
          Retrieves the set of all stat trackers associated with this job that have the specified display name and client ID.
 java.util.Date getStopTime()
          Retrieves the time that this job should stop.
 int getThreadsPerClient()
          Retrieves the number of threads that each client should use to run this job.
 int getThreadStartupDelay()
          Retrieves the delay in milliseconds that should be used when starting each thread on the client system.
 boolean graphsAvailable()
          Indicates whether enough information is available for this job to generate graphs of the results.
 boolean hasRealTimeStats()
          Indicates whether this job has real-time stat data associated with it.
 boolean hasResourceStats()
          Indicates whether this job has resource monitor information associated with it.
 boolean hasStats()
          Indicates whether this job has statistical information associated with it.
 boolean monitorClientsIfAvailable()
          Indicates whether an attempt will be made to use resource monitor clients on the same systems as the clients used to run this job.
 void removeActiveClient(ClientConnection clientConnection)
          Removes information about the specified client connection from the list of active connections associated with this job.
 void removeDependency(java.lang.String jobID)
          Removes the specified job as a dependency of this job.
 void removeMonitorClient(ResourceMonitorClientConnection clientConnection)
          Removes information about the specified resource monitor client connection from the list of active connections associated with this job.
 void resourceClientDone(ResourceMonitorClientConnection clientConnection, JobCompletedMessage message)
          Indicates that the specified resource monitor client has completed its processing and that its resource statistics are available.
 boolean resourceGraphsAvailable()
          Indicates whether enough information is available for this job to generate graphs of the resource monitor statistics.
 void setActualDuration(int actualDuration)
          Specifies the length of time in seconds that the job was actually running.
 void setActualStartTime(java.util.Date actualStartTime)
          Specifies the time that this job actually started running.
 void setActualStartTime(long actualStartTime)
          Specifies the time that the job actually started running.
 void setActualStopTime(java.util.Date actualStopTime)
          Specifies the time that the job actually stopped running.
 void setActualStopTime(long actualStopTime)
          Specifies the time that the job actually stopped running.
 void setCollectionInterval(int collectionInterval)
          Specifies the length of time in seconds that should be used as the statistics collection interval.
 void setDependencies(java.lang.String[] dependencies)
          Specifies the job IDs of the jobs that must complete before this job will be eligible for processing.
 void setDisplayInReadOnlyMode(boolean displayInReadOnlyMode)
          Specifies whether this job should be displayed in restricted read-only mode.
 void setDuration(int duration)
          Specifies the duration to use for the job.
 void setFolderName(java.lang.String folderName)
          Specifies the name of the folder in which this job is located.
 void setJobComments(java.lang.String jobComments)
          Specifies a set of comments for this job.
 void setJobDescription(java.lang.String jobDescription)
          Specifies the description that should be used for this job.
 void setJobGroup(java.lang.String jobGroup)
          Specifies the name of the job group with which this job is associated.
 void setJobID(java.lang.String jobID)
          Sets the job ID for this job.
 void setJobState(int jobState)
          Specifies the state of the current job.
 void setLogMessages(java.util.ArrayList logMessages)
          Specifies the set of messages logged during the job's execution.
 void setLogMessages(java.lang.String[] logMessages)
          Specifies the set of messages logged during the job's execution.
 void setMonitorClientsIfAvailable(boolean monitorClientsIfAvailable)
          Specifies whether an attempt should be made to use resource monitor clients on the same systems as the clients used to run this job.
 void setNotifyAddresses(java.lang.String[] notifyAddresses)
          Specifies the e-mail addresses of the users that should be notified when this job has completed running.
 void setNumberOfClients(int numberOfClients)
          Specifies the number of clients that should be used to run this job.
 void setOptimizingJobID(java.lang.String optimizingJobID)
          Specifies the ID of the optimizing job with which this job is associated.
 void setParameterList(ParameterList parameters)
          Specifies the list of parameters to use for this job.
 void setRealTimeStats(RealTimeJobStats realTimeStats)
          Specifies the real-time stat data associated with this job.
 void setRequestedClients(java.lang.String[] requestedClients)
          Specifies the set of clients that have been requested to run this job.
 void setResourceMonitorClients(java.lang.String[] monitorClients)
          Specifies the set of resource monitor clients that should be used when running this job.
 void setResourceStatTrackers(ResourceMonitorStatTracker[] monitorTrackers)
          Specifies the set of resource monitor stat trackers associated with this job.
 void setResourceStatTrackers(StatTracker[] trackerArray)
          Specifies the set of resource monitor stat trackers associated with this job.
 void setStartTime(java.util.Date startTime)
          Specifies the start time to use for the job.
 void setStatTrackers(StatTracker[] trackerArray)
          Specifies the set of stat trackers associated with this job.
 void setStopTime(java.util.Date stopTime)
          Specifies the stop time to use for this job.
 void setThreadsPerClient(int threadsPerClient)
          Specifies the number of threads that each client should use to run this job.
 void setThreadStartupDelay(int threadStartupDelay)
          Specifies the delay in milliseconds that should be used when starting each thread on the client system.
 void setWaitForClients(boolean waitForClients)
          Specifies whether this job will wait for the appropriate number of available clients to start running, or whether it will be cancelled if there are not enough clients available when the start time arrives.
 void startProcessing()
          Indicates that the job should start running on all the specified clients with the appropriate number of threads per client.
 void stopAndWait()
          Indicates that all job threads should stop running on all clients, and will not return until that has occurred.
 void stopProcessing()
          Indicates that all job threads should stop running on all clients.
 boolean waitForClients()
          Indicates whether this job will wait for the appropriate number of available clients to start running, or whether it will be cancelled if there are not enough clients available when the start time arrives.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ELEMENT_JOB_ID

public static final java.lang.String ELEMENT_JOB_ID
The name of the encoded element that holds the job ID.

See Also:
Constant Field Values

ELEMENT_JOB_CLASS

public static final java.lang.String ELEMENT_JOB_CLASS
The name of the encoded element that holds the job class name.

See Also:
Constant Field Values

ELEMENT_OPTIMIZING_JOB_ID

public static final java.lang.String ELEMENT_OPTIMIZING_JOB_ID
The name of the encoded element that holds the optimizing job ID.

See Also:
Constant Field Values

ELEMENT_JOB_GROUP

public static final java.lang.String ELEMENT_JOB_GROUP
The name of the encoded element that holds the job group name.

See Also:
Constant Field Values

ELEMENT_FOLDER

public static final java.lang.String ELEMENT_FOLDER
The name of the encoded element that holds the folder name.

See Also:
Constant Field Values

ELEMENT_JOB_STATE

public static final java.lang.String ELEMENT_JOB_STATE
The name of the encoded element that holds the job state.

See Also:
Constant Field Values

ELEMENT_DISPLAY_IN_READ_ONLY

public static final java.lang.String ELEMENT_DISPLAY_IN_READ_ONLY
The name of the encoded element that indicates whether this job should be displayed in restricted read-only mode.

See Also:
Constant Field Values

ELEMENT_DESCRIPTION

public static final java.lang.String ELEMENT_DESCRIPTION
The name of the encoded element that holds the job description.

See Also:
Constant Field Values

ELEMENT_START_TIME

public static final java.lang.String ELEMENT_START_TIME
The name of the encoded element that holds the scheduled start time.

See Also:
Constant Field Values

ELEMENT_STOP_TIME

public static final java.lang.String ELEMENT_STOP_TIME
The name of the encoded element that holds the scheduled stop time.

See Also:
Constant Field Values

ELEMENT_DURATION

public static final java.lang.String ELEMENT_DURATION
The name of the encoded element that holds the scheduled duration.

See Also:
Constant Field Values

ELEMENT_NUM_CLIENTS

public static final java.lang.String ELEMENT_NUM_CLIENTS
The name of the encoded element that holds the number of clients.

See Also:
Constant Field Values

ELEMENT_REQUESTED_CLIENTS

public static final java.lang.String ELEMENT_REQUESTED_CLIENTS
The name of the encoded element that holds the requested clients.

See Also:
Constant Field Values

ELEMENT_MONITOR_CLIENTS

public static final java.lang.String ELEMENT_MONITOR_CLIENTS
The name of the encoded element that holds the requested resource monitor clients.

See Also:
Constant Field Values

ELEMENT_MONITOR_CLIENTS_IF_AVAILABLE

public static final java.lang.String ELEMENT_MONITOR_CLIENTS_IF_AVAILABLE
The name of the encoded element that indicates whether the clients should be monitored if they are running resource monitor clients.

See Also:
Constant Field Values

ELEMENT_WAIT_FOR_CLIENTS

public static final java.lang.String ELEMENT_WAIT_FOR_CLIENTS
The name of the encoded element that indicates whether to wait for clients to become available.

See Also:
Constant Field Values

ELEMENT_THREADS_PER_CLIENT

public static final java.lang.String ELEMENT_THREADS_PER_CLIENT
The name of the encoded element that holds the number of threads per client.

See Also:
Constant Field Values

ELEMENT_THREAD_STARTUP_DELAY

public static final java.lang.String ELEMENT_THREAD_STARTUP_DELAY
The name of the encoded element that holds the thread startup delay.

See Also:
Constant Field Values

ELEMENT_DEPENDENCIES

public static final java.lang.String ELEMENT_DEPENDENCIES
The name of the encoded element that holds the set of dependencies.

See Also:
Constant Field Values

ELEMENT_NOTIFY_ADDRESSES

public static final java.lang.String ELEMENT_NOTIFY_ADDRESSES
The name of the encoded element that holds the e-mail addresses of the users to notify on completion.

See Also:
Constant Field Values

ELEMENT_COLLECTION_INTERVAL

public static final java.lang.String ELEMENT_COLLECTION_INTERVAL
The name of the encoded element that holds the statistics collection interval.

See Also:
Constant Field Values

ELEMENT_COMMENTS

public static final java.lang.String ELEMENT_COMMENTS
The name of the encoded element that holds the job comments.

See Also:
Constant Field Values

ELEMENT_PARAMETERS

public static final java.lang.String ELEMENT_PARAMETERS
The name of the encoded element that holds the job parameters.

See Also:
Constant Field Values

ELEMENT_ACTUAL_START_TIME

public static final java.lang.String ELEMENT_ACTUAL_START_TIME
The name of the encoded element that holds the actual start time.

See Also:
Constant Field Values

ELEMENT_ACTUAL_STOP_TIME

public static final java.lang.String ELEMENT_ACTUAL_STOP_TIME
The name of the encoded element that holds the actual stop time.

See Also:
Constant Field Values

ELEMENT_ACTUAL_DURATION

public static final java.lang.String ELEMENT_ACTUAL_DURATION
The name of the encoded element that holds the actual duration.

See Also:
Constant Field Values

ELEMENT_STATS

public static final java.lang.String ELEMENT_STATS
The name of the encoded element that holds the job statistics.

See Also:
Constant Field Values

ELEMENT_LEGACY_MONITOR_STATS

public static final java.lang.String ELEMENT_LEGACY_MONITOR_STATS
The name of the encoded element that holds legacy resource monitor statistical data (just stat trackers, not resource monitor stats).

See Also:
Constant Field Values

ELEMENT_RESOURCE_MONITOR_STATS

public static final java.lang.String ELEMENT_RESOURCE_MONITOR_STATS
The name of the encoded element that holds resource monitor statistics.

See Also:
Constant Field Values

ELEMENT_LOG_MESSAGES

public static final java.lang.String ELEMENT_LOG_MESSAGES
The name of the encoded element that holds the log messages.

See Also:
Constant Field Values
Constructor Detail

Job

public Job(SLAMDServer slamdServer,
           java.lang.String jobThreadClassName)
    throws SLAMDException
Creates a new instance of the job based on the specified job thread class. This version of the constructor is to be used only for the purpose of obtaining information about the job -- not for actually running it.

Parameters:
slamdServer - The SLAMD server with which this job is associated.
jobThreadClassName - The fully-qualified name of the Java class that will actually be invoked to perform the work of this job.
Throws:
SLAMDException - If it is not possible to create an instance of the job class.

Job

public Job(SLAMDServer slamdServer,
           java.lang.String jobThreadClassName,
           int numClients,
           int threadsPerClient,
           int threadStartupDelay,
           java.util.Date startTime,
           java.util.Date stopTime,
           int duration,
           int collectionInterval,
           ParameterList parameters,
           boolean displayInReadOnlyMode)
    throws SLAMDException
Creates a new instance of the job based on the specified job thread class that may be actually used to run the job.

Parameters:
slamdServer - The SLAMD server with which this job is associated.
jobThreadClassName - The fully-qualified name of the Java class that will actually be invoked to perform the work of this job.
numClients - The number of clients that should be used to execute the job.
threadsPerClient - The number of concurrent job thread instances that will run on each client.
threadStartupDelay - The delay in milliseconds that should be used when starting each thread on the client system.
startTime - The time at which the job should start running.
stopTime - The time at which the job should stop running.
duration - The maximum length of time in seconds that the job should be allowed to run.
collectionInterval - The length of time in seconds to use as the statistics collection interval.
parameters - The parameter list that provides the details of how the job should run.
displayInReadOnlyMode - Indicates whether this job should be displayed in restricted read-only mode.
Throws:
SLAMDException - If a problem occurred while creating an instance of the job thread class.
Method Detail

getJobClass

public JobClass getJobClass()
Retrieves an instance of the job class with which this job is associated.

Returns:
An instance of the job class with which this job is associated, or null if it could not be retrieved for some reason.

getJobID

public java.lang.String getJobID()
Retrieves the job ID associated with this job.

Returns:
The job ID associated with this job.

setJobID

public void setJobID(java.lang.String jobID)
Sets the job ID for this job.

Parameters:
jobID - The job ID to use for this job.

getOptimizingJobID

public java.lang.String getOptimizingJobID()
Retrieves the ID of the optimizing job with which this job is associated.

Returns:
The ID of the optimizing job with which this job is associated, or null if it is not associated with an optimizing job.

setOptimizingJobID

public void setOptimizingJobID(java.lang.String optimizingJobID)
Specifies the ID of the optimizing job with which this job is associated.

Parameters:
optimizingJobID - The ID of the optimizing job with which this job is associated.

getJobGroup

public java.lang.String getJobGroup()
Retrieves the name of the job group with which this job is associated.

Returns:
The name of the job group with which this job is associated, or null if it was not scheduled as part of any job group.

setJobGroup

public void setJobGroup(java.lang.String jobGroup)
Specifies the name of the job group with which this job is associated.

Parameters:
jobGroup - The name of the job group with which this job is associated.

getFolderName

public java.lang.String getFolderName()
Retrieves the name of the folder in which this job is located.

Returns:
The name of the folder in which this job is located.

setFolderName

public void setFolderName(java.lang.String folderName)
Specifies the name of the folder in which this job is located.

Parameters:
folderName - The name of the folder in which this job is located.

getJobComments

public java.lang.String getJobComments()
Retrieves the user-specified comments for this job.

Returns:
The user-specified comments for this job, or null if no comments have been made.

setJobComments

public void setJobComments(java.lang.String jobComments)
Specifies a set of comments for this job.

Parameters:
jobComments - The set of comments to use for this job.

getJobDescription

public java.lang.String getJobDescription()
Retrieves a user-specified description for this job.

Returns:
A description for this job, or null if no description has been provided.

setJobDescription

public void setJobDescription(java.lang.String jobDescription)
Specifies the description that should be used for this job.

Parameters:
jobDescription - The job description that should be used for this job.

getJobClassName

public java.lang.String getJobClassName()
Retrieves the name of the Java class that this job will execute to perform the work.

Returns:
The name of the Java class that this job will execute to perform the work.

getStartTime

public java.util.Date getStartTime()
Retrieves the time that this job should start.

Returns:
The time that this job should start.

setStartTime

public void setStartTime(java.util.Date startTime)
Specifies the start time to use for the job.

Parameters:
startTime - The start time to use for the job.

getStopTime

public java.util.Date getStopTime()
Retrieves the time that this job should stop.

Returns:
The time that this job should start.

setStopTime

public void setStopTime(java.util.Date stopTime)
Specifies the stop time to use for this job.

Parameters:
stopTime - The stop time to use for this job.

getDuration

public int getDuration()
Retrieves the maximum amount of time that this job should run.

Returns:
The maximum amount of time that this job should run.

setDuration

public void setDuration(int duration)
Specifies the duration to use for the job.

Parameters:
duration - The duration to use for the job.

getJobName

public java.lang.String getJobName()
Retrieves the name of this job.

Returns:
The name of this job.

getJobClassDescription

public java.lang.String getJobClassDescription()
Retrieves a description of the job class.

Returns:
A description of the job class.

getNumberOfClients

public int getNumberOfClients()
Retrieves the number of clients that should be used to run this job.

Returns:
The number of clients that should be used to run this job.

setNumberOfClients

public void setNumberOfClients(int numberOfClients)
Specifies the number of clients that should be used to run this job.

Parameters:
numberOfClients - The number of clients that should be used to run this job.

getThreadsPerClient

public int getThreadsPerClient()
Retrieves the number of threads that each client should use to run this job.

Returns:
The number of threads that each client should use to run this job.

setThreadsPerClient

public void setThreadsPerClient(int threadsPerClient)
Specifies the number of threads that each client should use to run this job.

Parameters:
threadsPerClient - The number of threads that each client should use to run this job.

getThreadStartupDelay

public int getThreadStartupDelay()
Retrieves the delay in milliseconds that should be used when starting each thread on the client system.

Returns:
The delay in milliseconds that should be used when starting each thread on the client system.

setThreadStartupDelay

public void setThreadStartupDelay(int threadStartupDelay)
Specifies the delay in milliseconds that should be used when starting each thread on the client system.

Parameters:
threadStartupDelay - The delay in milliseconds that should be used when starting each thread on the client system.

getCollectionInterval

public int getCollectionInterval()
Retrieves the length of time in seconds that should be used as the statistics collection interval.

Returns:
The length of time in seconds that should be used as the statistics collection interval.

setCollectionInterval

public void setCollectionInterval(int collectionInterval)
Specifies the length of time in seconds that should be used as the statistics collection interval.

Parameters:
collectionInterval - The length of time in seconds that should be used as the statistics collection interval.

getParameterStubs

public ParameterList getParameterStubs()
Retrieves a list of all the parameters that can be used to configure the behavior of this job.

Returns:
A list of all the parameters that can be used to configure the behavior of this job.

getClientSideParameterStubs

public ParameterList getClientSideParameterStubs()
Retrieves a list of all the parameters that can be used to configure the behavior of this job.

Returns:
A list of all the parameters that can be used to configure the behavior of this job.

getParameterList

public ParameterList getParameterList()
Retrieves a list of the parameters that have been configured for this job. This will not be the parameter stubs, but rather the actual parameters set that the user has specified.

Returns:
A list of the parameters that have been configured for this job.

setParameterList

public void setParameterList(ParameterList parameters)
Specifies the list of parameters to use for this job.

Parameters:
parameters - The list of parameters to use for this job.

getJobState

public int getJobState()
Retrieves the state of the current job. The return value should be that of one of the JOB_STATE_* constants.

Returns:
The state of the current job.

setJobState

public void setJobState(int jobState)
Specifies the state of the current job. The provided state value should be one of the JOB_STATE_* constants.

Parameters:
jobState - The state to use for the current job.

getJobStateString

public java.lang.String getJobStateString()
Retrieves a string description of the current job state.

Returns:
A string description of the current job state.

waitForClients

public boolean waitForClients()
Indicates whether this job will wait for the appropriate number of available clients to start running, or whether it will be cancelled if there are not enough clients available when the start time arrives.

Returns:
true if this job will wait for the requested number of clients before starting, or false if not.

setWaitForClients

public void setWaitForClients(boolean waitForClients)
Specifies whether this job will wait for the appropriate number of available clients to start running, or whether it will be cancelled if there are not enough clients available when the start time arrives.

Parameters:
waitForClients - Indicates whether the job will wait for clients to be available.

displayInReadOnlyMode

public boolean displayInReadOnlyMode()
Indicates whether this job should be displayed in restricted read-only mode.

Returns:
true if this job should be displayed in restricted read-only mode, or false if not.

setDisplayInReadOnlyMode

public void setDisplayInReadOnlyMode(boolean displayInReadOnlyMode)
Specifies whether this job should be displayed in restricted read-only mode.

Parameters:
displayInReadOnlyMode - Indicates whether this job should be displayed in restricted read-only mode.

getDependencies

public java.lang.String[] getDependencies()
Retrieves the job IDs of the jobs that must complete before this job will be eligible for processing.

Returns:
The job IDs of the jobs that must complete before this job will be eligible for processing, or null if there are no such dependencies.

setDependencies

public void setDependencies(java.lang.String[] dependencies)
Specifies the job IDs of the jobs that must complete before this job will be eligible for processing.

Parameters:
dependencies - The job IDs of the jobs that must complete before this job will be eligible for processing.

removeDependency

public void removeDependency(java.lang.String jobID)
Removes the specified job as a dependency of this job.

Parameters:
jobID - The job ID for the job to remove as a dependency of this job.

getRequestedClients

public java.lang.String[] getRequestedClients()
Retrieves the set of clients that have been requested to run this job.

Returns:
The set of clients that have been requested to run this job.

setRequestedClients

public void setRequestedClients(java.lang.String[] requestedClients)
Specifies the set of clients that have been requested to run this job.

Parameters:
requestedClients - The set of clients that have been requested to run this job.

getResourceMonitorClients

public java.lang.String[] getResourceMonitorClients()
Retrieves the set of resource monitor clients that have been requested for this job.

Returns:
The set of resource monitor clients that have been requested for this job.

setResourceMonitorClients

public void setResourceMonitorClients(java.lang.String[] monitorClients)
Specifies the set of resource monitor clients that should be used when running this job.

Parameters:
monitorClients - The set of resource monitor clients that should be used when running this job.

monitorClientsIfAvailable

public boolean monitorClientsIfAvailable()
Indicates whether an attempt will be made to use resource monitor clients on the same systems as the clients used to run this job.

Returns:
true if resource monitor clients on the same systems as the clients will be used, or false if not.

setMonitorClientsIfAvailable

public void setMonitorClientsIfAvailable(boolean monitorClientsIfAvailable)
Specifies whether an attempt should be made to use resource monitor clients on the same systems as the clients used to run this job.

Parameters:
monitorClientsIfAvailable - Specifies whether an attempt should be made to use resource monitor clients on the same systems as the clients used to run this job.

getNotifyAddresses

public java.lang.String[] getNotifyAddresses()
Retrieves the e-mail addresses of the users that should be notified when this job has completed running.

Returns:
The e-mail addresses of the users that should be notified when this job has completed running.

setNotifyAddresses

public void setNotifyAddresses(java.lang.String[] notifyAddresses)
Specifies the e-mail addresses of the users that should be notified when this job has completed running.

Parameters:
notifyAddresses - The e-mail addresses of the users that should be notified when this job has completed running.

doneRunning

public boolean doneRunning()
Indicates whether all possible processing has been done for this job.

Returns:
true if there is no more processing to be done, or false if the job is still running or pending execution.

graphsAvailable

public boolean graphsAvailable()
Indicates whether enough information is available for this job to generate graphs of the results.

Returns:
true if graphs are available, or false if not.

resourceGraphsAvailable

public boolean resourceGraphsAvailable()
Indicates whether enough information is available for this job to generate graphs of the resource monitor statistics.

Returns:
true if graphs are available, or false if not.

hasRealTimeStats

public boolean hasRealTimeStats()
Indicates whether this job has real-time stat data associated with it.

Returns:
true if this job has real-time stat data associated with it, or false if not.

setRealTimeStats

public void setRealTimeStats(RealTimeJobStats realTimeStats)
Specifies the real-time stat data associated with this job.

Parameters:
realTimeStats - The real-time stat data associated with this job.

getRealTimeStats

public RealTimeJobStats getRealTimeStats()
Retrieves the real-time stat data associated with this job.

Returns:
The real-time stat data associated with this job, or null if no real-time stat data is being collected.

hasStats

public boolean hasStats()
Indicates whether this job has statistical information associated with it.

Returns:
true if this job has statistical information associated with it, or false if not.

hasResourceStats

public boolean hasResourceStats()
Indicates whether this job has resource monitor information associated with it.

Returns:
true if this job has resource monitor information associated with it, or false if not.

getStatTrackerNames

public java.lang.String[] getStatTrackerNames()
Retrieves the display names of all the stat trackers associated with this job.

Returns:
The names of all stat trackers associated with this job.

getResourceStatTrackerNames

public java.lang.String[] getResourceStatTrackerNames()
Retrieves the display names of all the resource monitor stat trackers associated with this job.

Returns:
The names of all the resource monitor stat trackers associated with this job.

getResourceStatTrackerNamesAndClasses

public java.util.LinkedHashMap getResourceStatTrackerNamesAndClasses()
Retrieves the display names of all the resource monitor stat trackers associated with this job, in a map that links those names to the names of the associated resource monitor class.

Returns:
The display names of all the resource monitor stat trackers associated with this job, in a map that links those names to the names of the associated resource monitor class.

getStatTrackers

public StatTracker[] getStatTrackers()
Retrieves the set of all stat trackers associated with this job.

Returns:
The set of all stat trackers associated with this job.

getResourceStatTrackers

public StatTracker[] getResourceStatTrackers()
Deprecated. Use the getResourceMonitorStatTrackers method instead, which will include resource monitor information along with the statistical data.

Retrieves the set of all resource monitor stat trackers associated with this job.

Returns:
The set of all resource monitor stat trackers associated with this job.

getResourceMonitorStatTrackers

public ResourceMonitorStatTracker[] getResourceMonitorStatTrackers()
Retrieves the set of all resource monitor stat trackers associated with this job.

Returns:
The set of all resource monitor stat trackers associated with this job.

getStatTrackers

public StatTracker[] getStatTrackers(java.lang.String displayName)
Retrieves the set of all stat trackers associated with this job that have the specified display name.

Parameters:
displayName - The display name for the stat trackers to be retrieved.
Returns:
The set of all stat trackers associated with this job that have the specified display name.

getResourceStatTrackers

public StatTracker[] getResourceStatTrackers(java.lang.String displayName)
Retrieves the set of all resource monitor stat trackers associated with this job that have the specified display name.

Parameters:
displayName - The display name for the resource stat trackers to be retrieved.
Returns:
The set of all resource stat trackers associated with this job that have the specified display name. \

getResourceMonitorStatTrackers

public ResourceMonitorStatTracker[] getResourceMonitorStatTrackers(java.lang.String displayName)
Retrieves the set of all resource monitor stat trackers associated with this job that have the specified display name.

Parameters:
displayName - The display name for the resource stat trackers to be retrieved.
Returns:
The set of all resource stat trackers associated with this job that have the specified display name.

getResourceMonitorClasses

public ResourceMonitor[] getResourceMonitorClasses()
Retrieves the set of resource monitor class instances for which statistics are available with this job.

Returns:
The set of resource monitor class instances for which statistics are available with this job.

getResourceMonitorStatTrackersForClass

public ResourceMonitorStatTracker[] getResourceMonitorStatTrackersForClass(java.lang.String className)
Retrieves the set of all resource monitor stat trackers associated with this job that were captured using the specified resource monitor class.

Parameters:
className - The fully-qualified name of the resource monitor class for which to retrieve the associated resource monitor stat trackers.
Returns:
The set of all resource monitor stat trackers associated with this job that have the specified monitor class.

getStatTrackers

public StatTracker[] getStatTrackers(java.lang.String displayName,
                                     java.lang.String clientID)
Retrieves the set of all stat trackers associated with this job that have the specified display name and client ID.

Parameters:
displayName - The display name for the stat trackers to be retrieved.
clientID - The client ID for the stat trackers to be retrieved.
Returns:
The set of all stat trackers associated with this job that have the specified display name and client ID.

getResourceStatTrackers

public StatTracker[] getResourceStatTrackers(java.lang.String displayName,
                                             java.lang.String clientID)
Retrieves the set of all resource monitor stat trackers associated with this job that have the specified display name and client ID.

Parameters:
displayName - The display name for the stat trackers to be retrieved.
clientID - The client ID for the stat trackers to be retrieved.
Returns:
The set of all resource monitor stat trackers associated with this job that have the specified display name and client ID.

getResourceMonitorStatTrackers

public ResourceMonitorStatTracker[] getResourceMonitorStatTrackers(java.lang.String displayName,
                                                                   java.lang.String clientID)
Retrieves the set of all resource monitor stat trackers associated with this job that have the specified display name and client ID.

Parameters:
displayName - The display name for the stat trackers to be retrieved.
clientID - The client ID for the stat trackers to be retrieved.
Returns:
The set of all resource monitor stat trackers associated with this job that have the specified display name and client ID.

getStatTrackerClientIDs

public java.lang.String[] getStatTrackerClientIDs()
Retrieves the client IDs of all the clients that contributed stat tracker information.

Returns:
The client IDs of all the clients that contributed stat tracker information.

getResourceStatTrackerClientIDs

public java.lang.String[] getResourceStatTrackerClientIDs()
Retrieves the client IDs of all the clients that contributed resource monitor information.

Returns:
The client IDs of all the clients that contributed resource monitor information.

setStatTrackers

public void setStatTrackers(StatTracker[] trackerArray)
Specifies the set of stat trackers associated with this job.

Parameters:
trackerArray - The set of stat trackers to assign to this job.

setResourceStatTrackers

public void setResourceStatTrackers(StatTracker[] trackerArray)
Specifies the set of resource monitor stat trackers associated with this job.

Parameters:
trackerArray - The set of resource monitor stat trackers to assign to this job.

setResourceStatTrackers

public void setResourceStatTrackers(ResourceMonitorStatTracker[] monitorTrackers)
Specifies the set of resource monitor stat trackers associated with this job.

Parameters:
monitorTrackers - The set of resource monitor stat trackers to assign to this job.

getLogMessages

public java.lang.String[] getLogMessages()
Retrieves the set of messages logged during the job's execution.

Returns:
The set of messages logged during the job's execution.

addLogMessage

public void addLogMessage(java.lang.String message)
Adds the specified message to the set of messages logged during this job's execution.

Parameters:
message - The message to add to the set of messages for this job.

setLogMessages

public void setLogMessages(java.lang.String[] logMessages)
Specifies the set of messages logged during the job's execution.

Parameters:
logMessages - The set of messages logged during the job's execution.

setLogMessages

public void setLogMessages(java.util.ArrayList logMessages)
Specifies the set of messages logged during the job's execution.

Parameters:
logMessages - An array list containing the set of messages logged during the job's execution.

getActualStartTime

public java.util.Date getActualStartTime()
Retrieves the time at which this job actually started running.

Returns:
The time at which this job actually started running.

setActualStartTime

public void setActualStartTime(java.util.Date actualStartTime)
Specifies the time that this job actually started running.

Parameters:
actualStartTime - The time that this job actually started running.

setActualStartTime

public void setActualStartTime(long actualStartTime)
Specifies the time that the job actually started running.

Parameters:
actualStartTime - The time that the job actually started running.

getActualStopTime

public java.util.Date getActualStopTime()
Retrieves the time that the job actually stopped running.

Returns:
The time that the job actually stopped running.

setActualStopTime

public void setActualStopTime(java.util.Date actualStopTime)
Specifies the time that the job actually stopped running.

Parameters:
actualStopTime - The time that the job actually stopped running.

setActualStopTime

public void setActualStopTime(long actualStopTime)
Specifies the time that the job actually stopped running.

Parameters:
actualStopTime - The time that the job actually stopped running.

getActualDuration

public int getActualDuration()
Retrieves the length of time in seconds that the job was actually running.

Returns:
The length of time in seconds that the job was actually running.

setActualDuration

public void setActualDuration(int actua