Hello,

 I read the documentation about RSL job description files. It seems that
variable substitution works only for a few variables (GLOBUS_USER_HOME,
GLOBUS_LOCATION and a few others).

 So, i submit a job and grab the Perl description from the debug output.
Here it is:

Perl Job Description: $description = {
    directory => [ '/home/fhornoy' ],
    condoros => [ 'LINUX' ],
    condorarch => [ 'INTEL' ],
    environment => [ [ 'GLOBUS_LOCATION', '/opt/globus' ], [
'X509_CERT_DIR', '/etc/grid-security/certificates' ], [ 'X509_USER_PROXY',
'' ], [ 'X509_USER_CERT', '' ], [ 'X509_USER_KEY', '' ], [ 'HOME', '/home/f\
hornoy' ], [ 'LOGNAME', 'fhornoy' ], [ 'SCRATCH_DIRECTORY',
'/home/fhornoy/.globus/scratch' ], [ 'JAVA_HOME',
'/usr/java/jdk1.5.0_07/jre' ], [ 'GLOBUS_GRAM_JOB_HANDLE', '
https://IP:8443/wsrf/services\
/ManagedExecutableJobService?76d25692-51a8-11dc-a390-0017f23158ca' ],  ],
    xmlextensions => [ '1' ],
    arguments => [ 'helloworld' ],
    executable => [ '/bin/echo' ],
    factoryendpoint => [ 'Address:
https://ip:8443/wsrf/services/ManagedJobFactoryService
Reference property[0]:
<ns5:ResourceID ns04:type="ns05:string" xmlns:ns04="
http://www.w3.org/2001/XMLSchema-instance"; xmlns:ns05="
http://www.w3.org/2001/XMLSchema"; xmlns:ns5="
http://www.globus.org/namespaces/2004/10/gram/job";>Fork</ns\
5:ResourceID>
' ],
    stdin => [ '/dev/null' ],
    jobdir => [ '/home/fhornoy/.globus/76d25692-51a8-11dc-a390-0017f23158ca'
],
    jobtype => [ 'multiple' ],
    count => [ '1' ],
    useforkstarter => [ '1' ],
};


 i wonder why we cannot use the var in the "environment" field. For example,
if i use ${JAVA_HOME} in my RSL file, the substitution does not work.

 So, my problem is that i want to  launch a command line that is: "java xxxx
yyy zzzz". But we must specify, in the <executable> element of the RSL file,
an absolute path (am i right?). But the absolute path to the "java"
executable won't be the same on several machines... so i thought that using
this: <executable>${JAVA_HOME}/bin/java</executable> would a good solution.

 Unfortunately, it does not work, as explained above. So what should i do?
Make a symbolic link of the java executable in /bin/java on every nodes of
the grid and use <executable>/bin/java</executable> in my RSL specification?
Or maybe there is another way of defining the remote environment..?

 Cheers,
 Francois.

Reply via email to