Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[geclipse-dev] JSDL Job commandline args not passed to submitJob when calling a 5.1 Job Service from a 5.2 client

During integration and testing of g-Eclipse with the GRIA 5.2 client
libraries, we've come across the following scenario which is NOT
supported!:

If I have a 5.2 Client and a 5.1 Job Service, then try using
createJobJSDL to create a Job. In the JSDL, we define application
arguments in the standard place (see example JSDL at bottom of email).
In JobServiceHelpers, we detect that the service does not support JSDL
(using isJSDLSubmissionSupported()). In this case, the client code calls
the alternative, 5.1 method (i.e. createJob), e.g.

createJob(jsdl.getApplication().getApplicationName(),
jsdl.getJobIdentification().getJobName())

This part works fine.

Now, when we come to start the job, we would now (for 5.2 client) call
submitJobJSDL. In the JobHelpers class, this contains the following
code:

    public void submitJobJSDL() throws RemoteException
    {
		if
(!((RemoteJobService)getService()).isJSDLSubmissionSupported())
			proxy.submitJob(null, new String[0]);
		else
			invoke("submitJobJSDL");
    }

So the arguments that should have been passed into the commandline for
the application are set to an empty array!

Clearly, we need to extract the arguments string from the initial JSDL
that was submitted. For a GRIA 5.1 service, obviously it doesn't have
access to this, since it doesn't ever handle a JSDL document. So, it
must be handled somehow on the client side.

For g-Eclipse, we have done a workaround. We have the JSDL at submission
time, so we extract the args from here, create the String[] array, and
can directly call the 5.1 method submitJob (if isJSDLSubmissionSupported
is false).

Anyway, for GRIA 5.2++ clients, we need to handle this case somehow,
directly in the JobHelpers class. Probably David didn't handle this
case, as the JSDL document may not have been available at this point.

Any ideas or suggestions about this?

Cheers,

Ken.



<?xml version="1.0" encoding="UTF-8"?>
<JobDefinition xmlns="http://schemas.ggf.org/jsdl/2005/11/jsdl";
xmlns:jsdl-posix="http://schemas.ggf.org/jsdl/2005/11/jsdl-posix";>
  <JobDescription>
    <JobIdentification>
      <JobName>grid_blast</JobName>
    </JobIdentification>
    <Application>
      <ApplicationName>grid_blast</ApplicationName>
      <jsdl-posix:POSIXApplication>
        <jsdl-posix:Argument>-p</jsdl-posix:Argument>
        <jsdl-posix:Argument>blastp</jsdl-posix:Argument>
        <jsdl-posix:Argument>-d</jsdl-posix:Argument>
        <jsdl-posix:Argument>/data/blast/sprot</jsdl-posix:Argument>
      </jsdl-posix:POSIXApplication>
    </Application>
    <DataStaging name="outputFile">
      <FileName>outputFile</FileName>
      <CreationFlag>overwrite</CreationFlag>
      <DeleteOnTermination>true</DeleteOnTermination>
      <Target>
        <URI></URI>
      </Target>
    </DataStaging>
    <DataStaging name="inputFile">
      <FileName>inputFile</FileName>
      <CreationFlag>overwrite</CreationFlag>
      <DeleteOnTermination>true</DeleteOnTermination>
      <Source>
 
<URI>file:/C:/Documents%20and%20Settings/korn/Desktop/Protseq.file</URI>
      </Source>
    </DataStaging>
  </JobDescription>
</JobDefinition>


Back to the top