If you want to use the JAVA_HOME from the environment set on the
worker node, one of the easiest things to do is submit a shell script
that invokes java for you.
#!/bin/sh
java $@
for instance.
Charles
On Aug 23, 2007, at 1:54 PM, Francois Hornoy wrote:
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.