Adaptor module

How do I use this module ?
The command "jsaga-help" provides some useful information about the usage and the current configuration of the plug-ins.
jsaga-help -help
If this command does not provides the answer to your question, then please contact us so that we can fill out this FAQ.

[top]


Bugs and limitations
  • GridFTP servers running under Windows(c) system are not supported
  • For the safety of your files, opening a file in Write mode with the append flag against a DPM server will be refused because DPM ignores the Append flag
  • Opening a non-existing file in ReadWrite mode (with CREATE flag) against a DPM GridFTP server will fail with a 'DoesNotExist' exception:
    org.ogf.saga.file.File reader = (org.ogf.saga.file.File) Open Declaration org.ogf.saga.namespace.NSFactory.createNSEntry(session, fileUrl, Flags.READ.or(Flags.WRITE.or(Flags.CREATE.getValue())));
    DoesNotExist: File does not exist: <FILE_URL>
    	at fr.in2p3.jsaga.impl.file.stream.FileInputStreamImpl.<init>(FileInputStreamImpl.java:44)
    	at fr.in2p3.jsaga.impl.file.stream.FileStreamFactoryImpl.newFileInputStream(FileStreamFactoryImpl.java:29)
    	at fr.in2p3.jsaga.impl.file.AbstractSyncFileFactoryImpl.openFileInputStream(AbstractSyncFileFactoryImpl.java:73)
    	at fr.in2p3.jsaga.impl.file.AbstractSyncFileImpl.init(AbstractSyncFileImpl.java:102)
    	at fr.in2p3.jsaga.impl.file.AbstractSyncFileImpl.<init>(AbstractSyncFileImpl.java:42)
    	at fr.in2p3.jsaga.impl.file.AbstractAsyncFileImpl.<init>(AbstractAsyncFileImpl.java:32)
    	at fr.in2p3.jsaga.impl.file.FileImpl.<init>(FileImpl.java:30)
    	at fr.in2p3.jsaga.impl.namespace.AbstractSyncNSFactoryImpl.doCreateNSFileSync(AbstractSyncNSFactoryImpl.java:81)
    	at fr.in2p3.jsaga.impl.namespace.AbstractSyncNSFactoryImpl.doCreateNSEntrySync(AbstractSyncNSFactoryImpl.java:51)
    	at fr.in2p3.jsaga.impl.namespace.NSFactoryImpl.doCreateNSEntry(NSFactoryImpl.java:35)
    	at org.ogf.saga.namespace.NSFactory.createNSEntry(NSFactory.java:222)
    	at org.ogf.saga.namespace.NSFactory.createNSEntry(NSFactory.java:161)
            			

[top]

Globus Security Infrastructure

How to use the "Globus" context ?
Depending on attributes set in the context, JSAGA will behave differently:
  • If "UserProxyObject" is set, JSAGA will load this object and use it as the credential.
  • Else, if "UserProxy" is set to an existing file, JSAGA will load the file content as the credential. Although JSAGA checks that this file exists, it does not do any validation on it. It is your business to make sure it's valid.
  • Else, JSAGA will try to generate the proxy for you as soon as you provide all necessary attributes for that.

[top]


How to convert certificate from PKCS12 to PEM ?
Use the "openssl" command line interface from Linux/Cygwin distribution:
openssl pkcs12 -clcerts -nokeys -in mycert.p12 -out usercert.pem
openssl pkcs12 -nocerts -in mycert.p12 -out userkey.pem

[top]


How to change the passphrase of the private key ?
Use the "openssl" command line interface from Linux/Cygwin distribution:
openssl rsa -des3 -in userkey.pem -out userkey.new
if test $? -eq 0 ; then mv userkey.new userkey.pem ; fi

[top]


How to install CA on server side ?
Use the "openssl" command line interface from Linux/Cygwin distribution:
HASH=`openssl x509 -hash -noout -in ca.crt`
mv ca.crt $HASH.0
chmod 664 $HASH.0
DN=`openssl x509 -noout -subject -in $HASH.0 | cut -c 10-`
cat << EOF > $HASH.signing_policy
access_id_CA      X509          '$DN'
pos_rights        globus        CA:sign
cond_subjects     globus        '"/*"'
EOF
chmod 664 $HASH.signing_policy

[top]


How to use the MyProxy adaptor ?
Depending on attributes set in the context, JSAGA will behave differently:
  • If both "UserProxyObject" and "DelegationLifeTime" are set, JSAGA will load this object and use it as the credential to get a delegated proxy from the MyProxy server.
  • Else, if both "UserProxy" and "DelegationLifeTime" are set and "UserProxy" is set to an existing file, JSAGA will load the file content as the credential to get a delegated proxy from the MyProxy server. Although JSAGA checks that this file exists, it does not do any validation on it. It is your business to make sure it's valid.
  • Else, if "UserProxyObject" is set and it's content is a proxy that is still valid for at least 3 hours, JSAGA will load it as a delegated proxy.
  • Else, if "UserProxy" is set to an existing file whose content is a proxy that is still valid for at least 3 hours, JSAGA will load it as a delegated proxy.
  • Else, JSAGA will try to generate the proxy for you as soon as you provide all necessary attributes for that, and will store it to the MyProxy server.
Note that:
  • if "Server" is not set JSAGA will use in the environment variable "$MYPROXY_SERVER"
  • if "UserID" is not set, JSAGA will use the identity DN provided by the proxy
  • if "MyProxyPass" is not set, JSAGA will try to store the delegated proxy without any passphrase, which might be refused by the MyProxy server.

[top]


What does mean the "InvalidKeyException: Illegal key size" error?
It probably means that you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files. Search for "jce download" on oracle.com

[top]

Globus Gatekeeper

What is the URL syntax understood by this plug-in ?
The URL must be:
gatekeeper://<HOSTNAME>[:<PORT>]/jobmanager-<SCHEDULER>
Where:
    <HOSTNAME> is the name of the host running the Gatekeeper server,
    <PORT> is 2119 by default,
    <SCHEDULER> is the scheduler to use (must be available on targeted site): fork, pbs, lsf, condor, sge...
    <QUEUE> must be set in job description instead of resource manager URL.
Please note that the "gatekeeper" adaptor MUST NOT be used to submit many jobs on the same server. If you need to do this, then you should use the "wms" adaptors instead.

[top]


I have error code XX, what does it mean ?
See meaning of error codes here

[top]


My job is done but waitFor hangs.
Open firewall ports range "40000,45000" or configure attribute "TcpPortRange" to a range of opened ports. If you can not open ports, you can still use the "gk" plug-in instead, but with some limitations.

[top]


My job fails with exception: "org.globus.gram.GramException: The job manager failed to open stdout".
You may need to specify the IP address of your local host with attribute 'IPAddress'.

[top]