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.



Reply via email to