com.sun.grid.drmaa
Class JobTemplateImpl

java.lang.Object
  extended byorg.ggf.drmaa.JobTemplate
      extended bycom.sun.grid.drmaa.JobTemplateImpl

public class JobTemplateImpl
extends JobTemplate

This class represents a remote job and its attributes. It is used to set up the environment for a job to be submitted.

DRMMA Attributes

DRMAA job template attributes can be set from six different sources. In order of precedence, from lowest to highest, there are: options set by DRMAA automatically by default, options set in the sge_request file, options set in the script file, options set by the jobCategory property, options set by the nativeSpecification property, and options set through other DRMAA attributes.

By default DRMAA sets four options for all jobs. They are "-w e", "-p 0", "-b yes", and "-shell no". This means that by default, unschedulable jobs cannot be submitted, all jobs will have priority 0, all jobs will be treated as binary, i.e. no scripts args will be parsed, and all jobs will be executed without a wrapper shell.

The sge_request file, found in the $SGE_ROOT/$SGE_CELL/common directory, may contain options to be applied to all jobs. See the sge_request(5) man page for more information.

If the sge_request file contains "-b no" or if the nativeSpecification attribute is set and contains "-b no", the script file will be parsed for in-line arguments. Otherwise, no scripts args will be interpreted. See the qsub(1) man page for more information.

If the jobCategory attribute is set, and the category it points to exists in one of the qtask files, the options associated with that category will be applied to the job template. See the qtask(5) man page and the jobCategory attribute accessors below for more information.

If the nativeSpecification attribute is set, all options contained therein will be applied to the job template. See the nativeSpecification accessors below for more information.

Other DRMAA attributes will override any previous settings. For example, if the sge_request file contains "-j y", but the joinFiles attribute is set to false, the ultimate result is that the input and output files will remain separate.

Attribute Correlations

The following DRMAA attributes correspond to the following qsub options:

DRMAA Attributeqsub Option
remoteCommandscript file
argsscript file arguments
jobSubmissionState = HOLD-h
jobEnvironment-v
workingDirectoryNONE
jobCategoryNONE
nativeSpecificationNONE
emailAddresses-M
blockEmail = true-m n
startTime-a
jobName-N
inputPath-i
outputPath-o
errorPath-e
joinFiles-j
transferFilesNONE

The following attributes are unsupported by Grid Engine:

Using the accessors for any of these attributes will result in an UnsupportedAttributeException being thrown.

Since:
0.5
Author:
dan.templeton@sun.com
See Also:
JobTemplate, Session, SessionImpl

Field Summary
 
Fields inherited from class org.ggf.drmaa.JobTemplate
args, blockEmail, category, email, env, errorPath, HOME_DIRECTORY, inputPath, join, name, outputPath, PARAMETRIC_INDEX, remoteCommand, spec, startTime, state, wd
 
Method Summary
 boolean equals(java.lang.Object obj)
          Tests whether this JobTemplateImpl represents the same job template as the given object.
 java.lang.String[] getArgs()
          Get The parameters passed as arguments to the job.
 java.util.List getAttributeNames()
          Returns the list of supported properties names.
 boolean getBlockEmail()
          Get whether to block sending e-mail by default, regardless of the DRMS settings.
 java.lang.String[] getEmailAddresses()
          Get the list of email addresses used to report the job completion and status.
 java.lang.String getErrorPath()
          Gets how to direct the job's standard error.
 java.lang.String getInputPath()
          Get the job's standard input path.
 java.lang.String getJobCategory()
          Get the opaque string specifying how to resolve site-specific resources and/or policies.
 java.util.Properties getJobEnvironment()
          Get the environment values that define the remote environment.
 java.lang.String getJobName()
          Get the name of the job.
 int getJobSubmissionState()
          Get the job state at submission.
 boolean getJoinFiles()
          Gets whether the error stream should be intermixed with the output stream.
 java.lang.String getNativeSpecification()
          Get the opaque string that is passed by the end user to DRMAA to specify site-specific resources and/or policies.
 java.lang.String getOutputPath()
          Gets how to direct the job's standard output.
 java.lang.String getRemoteCommand()
          Get the command to execute as the job.
 PartialTimestamp getStartTime()
          Get the earliest time when the job may be eligible to be run.
 FileTransferMode getTransferFiles()
          Gets how to transfer files between hosts.
 java.lang.String getWorkingDirectory()
          Get the directory name where the job will be executed.
 int hashCode()
          Returns a hash code based on the id used to associate this JobTemplateImpl with its native peer.
 void setArgs(java.lang.String[] args)
          Set the parameters passed as arguments to the job.
 void setBlockEmail(boolean blockEmail)
          Specifies whether e-mail sending shall blocked or not.
 void setEmailAddresses(java.lang.String[] email)
          Set the list of email addresses used to report the job completion and status.
 void setErrorPath(java.lang.String errorPath)
          Sets how to direct the job's standard error.
 void setInputPath(java.lang.String inputPath)
          Set the job's standard input path.
 void setJobCategory(java.lang.String category)
          Specifies the DRMAA job category.
 void setJobEnvironment(java.util.Properties env)
          Set the environment values that define the remote environment.
 void setJobName(java.lang.String name)
          Set the name of the job.
 void setJobSubmissionState(int state)
          Specifies the job state at submission.
 void setJoinFiles(boolean join)
          Sets whether the error stream should be intermixed with the output stream.
 void setNativeSpecification(java.lang.String spec)
          Specifies native qsub options which will be interpreted as part of the DRMAA job template.
 void setOutputPath(java.lang.String outputPath)
          Sets how to direct the job's standard output.
 void setRemoteCommand(java.lang.String remoteCommand)
          Specifies the remote command to execute.
 void setStartTime(PartialTimestamp startTime)
          Set the earliest time when the job may be eligible to be run.
 void setTransferFiles(FileTransferMode mode)
          Sets how to transfer files between hosts.
 void setWorkingDirectory(java.lang.String wd)
          Specifies the directory name where the job will be executed.
 
Methods inherited from class org.ggf.drmaa.JobTemplate
getDeadlineTime, getEmail, getHardRunDurationLimit, getHardWallclockTimeLimit, getOptionalAttributeNames, getSoftRunDurationLimit, getSoftWallclockTimeLimit, setDeadlineTime, setEmail, setHardRunDurationLimit, setHardWallclockTimeLimit, setSoftRunDurationLimit, setSoftWallclockTimeLimit, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

setRemoteCommand

public void setRemoteCommand(java.lang.String remoteCommand)
                      throws DrmaaException

Specifies the remote command to execute. The remoteCommand must be the path of an executable that is available at the job's execution host. If the path is relative, it is assumed to be relative to the working directory set through the workingDirectory attibute. If workingDirectory is not set, the path is assumed to be relative to the user's home directory.

The file pointed to by remoteCommand may either be an executable binary or an executable script. If a script, the script must include the path to the shell in a #! line at the beginning of the script. By default, the remote command will be executed directly, as by exec. (See the exec(2) man page.) To have the remote command executed in a shell, such as to preserve environment settings, use the nativeSpecification attribute to include the "-shell yes" option. Jobs which are executed by a wrapper shell fail differently from jobs which are executed directly. A job executed by a wrapper shell which contains a user error, such as an invalid path to the executable, will execute successfully and exit with a return code of 1. A job executed directly which contains such an error will enter the FAILED state upon execution.

No binary file management is done.

Overrides:
setRemoteCommand in class JobTemplate
Parameters:
remoteCommand - The command to execute as the job
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getRemoteCommand

public java.lang.String getRemoteCommand()
Get the command to execute as the job. The command is relative to the execution host and is evaluated on the execution host. No binary file management is done.

Overrides:
getRemoteCommand in class JobTemplate
Returns:
The command to execute as the job or null if it has not been set

setArgs

public void setArgs(java.lang.String[] args)
             throws DrmaaException
Set the parameters passed as arguments to the job.

Overrides:
setArgs in class JobTemplate
Parameters:
args - The parameters passed as arguments to the job
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getArgs

public java.lang.String[] getArgs()
Get The parameters passed as arguments to the job.

Overrides:
getArgs in class JobTemplate
Returns:
The parameters passed as arguments to the job or null if they have not been set

setJobSubmissionState

public void setJobSubmissionState(int state)
                           throws DrmaaException

Specifies the job state at submission. The possible values are HOLD and ACTIVE:

ACTIVE means the job is runnable.

HOLD means the job is submitted in user hold state (either Session.USER_ON_HOLD or Session.USER_SYSTEM_ON_HOLD). This is equivalent to the qsub submit option `-h'.

Overrides:
setJobSubmissionState in class JobTemplate
Parameters:
state - The job state at submission
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeValueException
  • ConflictingAttributeValuesException

getJobSubmissionState

public int getJobSubmissionState()

Get the job state at submission. The states are HOLD and ACTIVE:

ACTIVE means the job is runnable.

HOLD means the job is submitted in user hold state.

Overrides:
getJobSubmissionState in class JobTemplate
Returns:
The job state at submission

setJobEnvironment

public void setJobEnvironment(java.util.Properties env)
                       throws DrmaaException
Set the environment values that define the remote environment. The values override the remote environment values if there is a collision.

Overrides:
setJobEnvironment in class JobTemplate
Parameters:
env - The environment values that define the remote environment
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getJobEnvironment

public java.util.Properties getJobEnvironment()
Get the environment values that define the remote environment. The values override the remote environment values if there is a collision.

Overrides:
getJobEnvironment in class JobTemplate
Returns:
The environment values that define the remote environment or null if it has not been set

setWorkingDirectory

public void setWorkingDirectory(java.lang.String wd)
                         throws DrmaaException

Specifies the directory name where the job will be executed. The working directory is evaluated relative to the execution host.

A HOME_DIRECTORY placeholder at the beginning denotes that the remaining portion of the directory name is resolved relative to the job submiter's home directory on the execution host.

The PARAMETRIC_INDEX placeholder can be used at any position within the directory name of parametric jobs and will be replaced by the underlying DRM system with the parametric jobs' indices.

The directory name must be specified in a syntax that is common at the host where the job will be executed. If no placeholder is used, an absolute directory specification is recommended. If set to a relative path and no placeholder is used, a path relative to the user's home directory is assumed. If not set, the working directory will default to the user's home directory. If the directory does not exist when the job is run, the job enters the state FAILED.

Overrides:
setWorkingDirectory in class JobTemplate
Parameters:
wd - The directory where the job is executed
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getWorkingDirectory

public java.lang.String getWorkingDirectory()

Get the directory name where the job will be executed. The working directory is evaluated relative to the execution host.

A HOME_DIRECTORY placeholder at the beginning denotes that the remaining portion of the directory name is resolved relative to the job submiter's home directory on the execution host.

The PARAMETRIC_INDEX placeholder can be used at any position within the directory name of parametric jobs and will be replaced by the underlying DRM system with the parametric jobs' index.

The directory name must be specified in a syntax that is common at the host where the job will be executed. If set to a relative path and no placeholder is used, a path relative to the user's home directory is assumed.

Overrides:
getWorkingDirectory in class JobTemplate
Returns:
The directory where the job is executed or null if it has not been set

setJobCategory

public void setJobCategory(java.lang.String category)
                    throws DrmaaException

Specifies the DRMAA job category. The category string is used by the underlying DRM as reference into the qtask file. Certain qsub options used in the referenced qtask file line are applied to the job template before submission to allow site-specific resolving of resources and/or policies. The cluster qtask file, the local qtask file, and the user qtask file are searched. See the qtask(5) man page. Job settings resulting from job template category are overridden by settings resulting from the job template nativeSpecification attribute as well as by explict DRMAA job template settings.

The options -help, -t, -verify, and -w w|v are ignored. The -cwd option is ignored unless the $SGE_DRMAA_ALLOW_CWD environment variable is set.

Overrides:
setJobCategory in class JobTemplate
Parameters:
category - An opaque string specifying how to resolve site-specific resources and/or policies.
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getJobCategory

public java.lang.String getJobCategory()
Get the opaque string specifying how to resolve site-specific resources and/or policies.

Overrides:
getJobCategory in class JobTemplate
Returns:
The opaque string specifying how to resolve site-specific resources and/or policies or null if it has not been set

setNativeSpecification

public void setNativeSpecification(java.lang.String spec)
                            throws DrmaaException
Specifies native qsub options which will be interpreted as part of the DRMAA job template. All options available to the qsub command may be used in the nativeSpecification, except for -help, -t, -verify, and -w w|v. -cwd may only be used if the $SGE_DRMAA_ALLOW_CWD enviroment variable is set. Options set in the nativeSpecification will be overridden by the corresponding DRMAA attributes. See the qsub(1) man page for more information on qsub command line options.

Overrides:
setNativeSpecification in class JobTemplate
Parameters:
spec - An opaque string that is passed by the end user to DRMAA to specify site-specific resources and/or policies
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getNativeSpecification

public java.lang.String getNativeSpecification()
Get the opaque string that is passed by the end user to DRMAA to specify site-specific resources and/or policies.

Overrides:
getNativeSpecification in class JobTemplate
Returns:
The opaque string that is passed by the end user to DRMAA to specify site-specific resources and/or policies or null if it has not been set

setEmailAddresses

public void setEmailAddresses(java.lang.String[] email)
                       throws DrmaaException
Set the list of email addresses used to report the job completion and status.

Parameters:
email - The list of email addresses used to report the job completion and status.
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getEmailAddresses

public java.lang.String[] getEmailAddresses()
Get the list of email addresses used to report the job completion and status.

Returns:
The list of email addresses used to report the job completion and status or null if they have not been set

setBlockEmail

public void setBlockEmail(boolean blockEmail)
                   throws DrmaaException
Specifies whether e-mail sending shall blocked or not. By default email is not sent. If, however, a setting in a cluster or user settings file or the nativeSpecification or jobCategory attribute enables sending email in association with job events, the blockEmail attribute will override that setting, causing no email to be sent.

Overrides:
setBlockEmail in class JobTemplate
Parameters:
blockEmail - Whether to block sending e-mail by default
Throws:
DrmaaException - Maybe be one of the following:
  • ConflictingAttributeValuesException

getBlockEmail

public boolean getBlockEmail()
Get whether to block sending e-mail by default, regardless of the DRMS settings.

Overrides:
getBlockEmail in class JobTemplate
Returns:
Whether to block sending e-mail by default

setStartTime

public void setStartTime(PartialTimestamp startTime)
                  throws DrmaaException
Set the earliest time when the job may be eligible to be run.

Overrides:
setStartTime in class JobTemplate
Parameters:
startTime - The earliest time when the job may be eligible to be run
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getStartTime

public PartialTimestamp getStartTime()
Get the earliest time when the job may be eligible to be run.

Overrides:
getStartTime in class JobTemplate
Returns:
The earliest time when the job may be eligible to be run or null if it has not been set

setJobName

public void setJobName(java.lang.String name)
                throws DrmaaException
Set the name of the job. A job name will be comprised of alpha-numeric and _ characters. The DRMAA implementation may truncate client provided job names to an implementation defined length that is at least 31 characters. Setting the job name is equivalent to use of the qsub submit option `-N' with name as option argument and has the same restrictions. See the qsub(1) man page.

Overrides:
setJobName in class JobTemplate
Parameters:
name - The name of the job
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getJobName

public java.lang.String getJobName()
Get the name of the job. A job name will be comprised of alpha-numeric and _ characters.

Overrides:
getJobName in class JobTemplate
Returns:
The name of the job or null if it has not been set

setInputPath

public void setInputPath(java.lang.String inputPath)
                  throws DrmaaException
Set the job's standard input path. Unless set elsewhere, if not explicitly set in the job template, the job is started with an empty input stream.
If set, specifies the network path of the job's input stream in the form of [hostname]:file_path
When the TranferFileMode object's inputStream property is set to true, the input file will be fetched by the underlying DRM system from the specified host or from the submit host if no hostname is specified.
When the TranferFileMode object's inputStream property is not set or is set to false, the input file is always expected at the host where the job is executed irrespectively of any hostname specified.
The PARAMETRIC_INDEX placeholder can be used at any position within the file path of parametric job templates and will be replaced by the underlying DRM system with the parametric job's index.
A HOME_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job submiter's home directory on the host where the file is located.
A WORKING_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job's working directory on the host where the file is located.
The file path must be specified in a syntax that is common at the host where the file is located.
When the job is run, if this attribute is set, and the file can't be read, the job will enter the state FAILED.

Overrides:
setInputPath in class JobTemplate
Parameters:
inputPath - The job's standard input path
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getInputPath

public java.lang.String getInputPath()
Get the job's standard input path. Specifies the network path of the job's input stream in the form of [hostname]:file_path
When the TranferFileMode object's inputStream property is set to true, the input file will be fetched by the underlying DRM system from the specified host or from the submit host if no hostname is specified.
When the TranferFileMode object's inputStream property is not set or is set to false, the input file is always expected at the host where the job is executed irrespectively of any hostname specified.
The PARAMETRIC_INDEX placeholder can be used at any position within the file path of parametric job templates and will be replaced by the underlying DRM system with the parametric job's index.
A HOME_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job submiter's home directory on the host where the file is located.
A WORKING_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job's working directory on the host where the file is located.
The file path is specified in a syntax that is common at the host where the file is located.

Overrides:
getInputPath in class JobTemplate
Returns:
The job's standard input path or null if it has not been set

setOutputPath

public void setOutputPath(java.lang.String outputPath)
                   throws DrmaaException
Sets how to direct the job's standard output. If not explicitly set in the job template, the whereabouts of the jobs output stream is not defined. If set, specifies the network path of the job's output stream file in the form of [hostname]:file_path
When the TranferFileMode object's outputStream property is set to true, the output file will be fetched by the underlying DRM system from the specified host or from the submit host if no hostname is specified.
When the transferFiles job template attribute is not set or does not contain TRANSFER_OUTPUT_FILES, the output file is always expected at the host where the job is executed irrespectively of any hostname specified.
The PARAMETRIC_INDEX placeholder can be used at any position within the file path of parametric job templates and will be replaced by the underlying DRM system with the parametric job's index.
A HOME_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job submiter's home directory on the host where the file is located.
A WORKING_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job's working directory on the host where the file is located.
The file path must be specified in a syntax that is common at the host where the file is located.
When the job is run, if this attribute is set, and the file can't be written before execution the job will enter the state FAILED.

Overrides:
setOutputPath in class JobTemplate
Parameters:
outputPath - How to direct the job's standard output
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getOutputPath

public java.lang.String getOutputPath()
Gets how to direct the job's standard output. If set, specifies the network path of the job's output stream file in the form of [hostname]:file_path
When the tranferFiles job template attribute is set to TRANSFER_OUTPUT_FILES, the output file will be fetched by the underlying DRM system from the specified host or from the submit host if no hostname is specified.
When the TranferFileMode object's outputStream property is not set or is set to false, the output file is always expected at the host where the job is executed irrespectively of any hostname specified.
The PARAMETRIC_INDEX placeholder can be used at any position within the file path of parametric job templates and will be replaced by the underlying DRM system with the parametric job's index.
A HOME_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job submiter's home directory on the host where the file is located.
A WORKING_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job's working directory on the host where the file is located.
The file path is specified in a syntax that is common at the host where the file is located.

Overrides:
getOutputPath in class JobTemplate
Returns:
How to direct the job's standard output or null if it has not been set

setErrorPath

public void setErrorPath(java.lang.String errorPath)
                  throws DrmaaException
Sets how to direct the job's standard error. If not explicitly set in the job template, the whereabouts of the job's error stream is not defined. If set, specifies the network path of the job's error stream file in the form [hostname]:file_path
When the TranferFileMode object's errorStream property is set to true, the error file will be fetched by the underlying DRM system from the specified host or from the submit host if no hostname is specified.
When the transferFiles job template attribute is not set or does not contain TRANSFER_ERROR_FILES, the error file is always expected at the host where the job is executed irrespectively of any hostname specified.
The PARAMETRIC_INDEX placeholder can be used at any position within the file path of parametric job templates and will be replaced by the underlying DRM system with the parametric job's index.
A HOME_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job submiter's home directory on the host where the file is located.
A WORKING_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job's working directory on the host where the file is located.
The file path must be specified in a syntax that is common at the host where the file is located.
When the job is run, if this attribute is set, and the file can't be written before execution the job will enter the state FAILED.

Overrides:
setErrorPath in class JobTemplate
Parameters:
errorPath - How to direct the job's standard error
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeFormatException
  • InvalidAttributeValueException
  • InvalidArgumentException
  • ConflictingAttributeValuesException

getErrorPath

public java.lang.String getErrorPath()
Gets how to direct the job's standard error. If not explicitly set in the job template, the whereabouts of the job's error stream is not defined. If set, specifies the network path of the job's error stream file in the form [hostname]:file_path
When the TRANSFER_FILES job template attribute is supported and contains the character 'e', the output file will be transferred by the underlying DRM system to the specified host or to the submit host if no hostname is specified.
When the TranferFileMode object's inputStream property is not set or is set to false, the error file is always kept at the host where the job is executed irrespectively of a possibly hostname specified.
The PARAMETRIC_INDEX placeholder can be used at any position within the file path of parametric job templates and will be replaced by the underlying DRM system with the parametric job's index.
A HOME_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job submiter's home directory on the host where the file is located.
A WORKING_DIRECTORY placeholder at the beginning of the file path denotes that the remaining portion of the file path is relative to the job's working directory on the host where the file is located.
The file path must be specified in a syntax that is common at the host where the file is located.

Overrides:
getErrorPath in class JobTemplate
Returns:
How to direct the job's standard error

setJoinFiles

public void setJoinFiles(boolean join)
                  throws DrmaaException
Sets whether the error stream should be intermixed with the output stream. If not explicitly set in the job template the attribute defaults to false.
If true, the underlying DRM system will ignore the value of the errorPath attribute and intermix the standard error stream with the standard output stream as specified with outputPath.

Overrides:
setJoinFiles in class JobTemplate
Parameters:
join - Whether the error stream should be intermixed with the output stream
Throws:
DrmaaException - Maybe be one of the following:
  • ConflictingAttributeValuesException

getJoinFiles

public boolean getJoinFiles()
Gets whether the error stream should be intermixed with the output stream. If true, the underlying DRM system will ignore the value of the errorPath attribute and intermix the standard error stream with the standard output stream as specified with outputPath.

Overrides:
getJoinFiles in class JobTemplate
Returns:
Whether the error stream should be intermixed with the output stream

setTransferFiles

public void setTransferFiles(FileTransferMode mode)
                      throws DrmaaException

Sets how to transfer files between hosts. If the FileTransferMode object's errorStream property is set to true, the errorPath attribute is taken to specify the location to which error files should be transfered after the job finishes.
If the FileTransferMode object's inputStream property is set to true, the inputPath attribute is taken to specify the location from which input files should be transfered before the job starts.
If the FileTransferMode object's outputStream property is set to true, the outputPath attribute is taken to specify the location to which output files should be transfered after the job finishes.

See setInputPath(), setOutputPath() and setErrorPath() for information about how to specify the standard input file, standard output file and standard error file.

The file transfer mechanism itself must be configured by the administrator. (see the sge_conf(5) man page.) When it is configured, the administrator has to enable transferFiles by settings the execd param, delegated_file_staging, to true. If it is not configured, transferFiles is not enabled and accessing this property will result in an UnsupportedAttributeException being thrown.

Overrides:
setTransferFiles in class JobTemplate
Parameters:
mode - How to transfer files between hosts.
Throws:
DrmaaException - Maybe be one of the following:
  • InvalidAttributeValueException
  • ConflictingAttributeValuesException

getTransferFiles

public FileTransferMode getTransferFiles()

Gets how to transfer files between hosts. If the FileTransferMode object's errorStream property is set to true, the errorPath attribute is taken to specify the location to which error files should be transfered after the job finishes.
If the FileTransferMode object's inputStream property is set to true, the inputPath attribute is taken to specify the location from which input files should be transfered before the job starts.
If the FileTransferMode object's outputStream property is set to true, the outputPath attribute is taken to specify the location to which output files should be transfered after the job finishes.

Overrides:
getTransferFiles in class JobTemplate
Returns:
How to transfer files between hosts. May be TRANSFER_NONE, or a combination of TRANSFER_ERROR_FILES, TRANSFER_INPUT_FILES and/or TRANSFER_OUTPUT_FILES ored together

getAttributeNames

public java.util.List getAttributeNames()

Returns the list of supported properties names. With the execd param, delegated_file_staging set to false, this list includes only the list of DRMAA required properties. With delegated_file_staging set to true, the list also includes the transferFiles property.

Overrides:
getAttributeNames in class JobTemplate
Returns:
the list of supported attribute names

equals

public boolean equals(java.lang.Object obj)
Tests whether this JobTemplateImpl represents the same job template as the given object. This means that even if two JobTemplateImpl's have all the same settings, they are not equal. This is because the JobTemplateImpl has a native peer.

Parameters:
obj - the object against which to compare
Returns:
whether the the given object is the same as this object

hashCode

public int hashCode()
Returns a hash code based on the id used to associate this JobTemplateImpl with its native peer.

Returns:
the has code