Skip navigation links

Package org.globus.gram

This library is a full implementation of the GRAM client API.

See: Description

Package org.globus.gram Description

This library is a full implementation of the GRAM client API. It allows for submitting and canceling of jobs, polling for job status and sending signals to a job. The library enables a user to 'ping' a gatekeeper to verify if the user can authenticate to it. In addition, this library allows for registering and un-registering of callback listeners that listen for job status updates. The callbacks are implemented as Java events.
Beyond the functionality of Globus, the Java GRAM API allows the specification of the delegation type to perform-either full or limited.

Notification of state changes for GRAM jobs is supported by the user's class adding itself as a listener to a GramJob. See the example below for more details.

Example

public class GramExample implements GramJobListener {

   private someMethod() {
     ...

     String gramContact = "pitcairn.mcs.anl.gov:6722:...";
     String rsl = "&(executable=...)(...)(...)";
     
     try {
         Gram.ping(gramContact);
     } catch (GramException e) {
        // can't submit
        return;
     }

     job.addListener(this);
     // add this class as a listener for state changes

     GramJob job = null;
     try {
        job = new GramJob(rsl);
        Gram.request(gramContact,job);
     } catch (GramException e) {
        // request failed
        ...
     }

     ...

     try {
         job.cancel();
     } catch (GramException e) {
       // cancel failed
       ...
     }
   }

   // this method must be implemented in order for the class to 
   // implement the GramJobListener class
   public stateChanged(GramJob job) {
       System.out.println("Job state change \n" +
                          "     ID   : " + job.getID() + "\n"  +
                          "     State: " + job.getStateAsString());
    }
}

Package Specification

Related Documentation

For overviews, tutorials, examples, guides, and tool documentation, please see:
Skip navigation links

Copyright © 2016. All rights reserved.