Cet exemple decrit le processus type de creation et de soumission d'un job a travers les classes de la bibliotheque.
Il faut toutefois penser que les appels aux methodes peuvent lever des exceptions qu'il faudra intercepter et gerer. See Exceptions.
...
// On recupere l'instance du catalogue de gestionnaires de batch
Batch::BatchManagerCatalog cata = Batch::BatchManagerCatalog::getInstance();
// On cree un BatchManager qui se connecte au veritable gestionnaire
// de batch
Batch::BatchManager & bm = (* cata("PBS"))("monserver.mondomaine.fr");
// Pour fabriquer un Job, on doit d'abord creer un objet Parametre et
// un objet Environnement qui contiennent respectivement la liste des
// parametres du job au sein du gestionnaire de batch et la liste des
// variables d'environnement necessaires au fonctionnement du job
Batch::Parametre param;
param[EXECUTABLE] = "/home/user/mon_application/executable";
param[NAME] = "MonJob";
param[ACCOUNT] = "MonProjet"; // code d'imputation/facturation
param[MAXCPUTIME] = 360L; // 6min
param[MAXWALLTIME] = 480L; // 8min
param[INFILE] = Batch::Couple("/tmp/infich1", rempath+"/infich1");
param[OUTFILE] = Batch::Couple("/tmp/outfich1", rempath+"/outfich1");
param[OUTFILE] += Batch::Couple("stderr", path + "/STDERR");
param[OUTFILE] += Batch::Couple("stdout", path + "/STDOUT");
param[MAIL] = "user@domaine.fr";
param[USER] = "user";
Batch::Environnement env;
env["DEBUG"] = "3"; // un niveau de debug exige par l'application
env["MYAPP_FILE"] = "/home/user/mon_application/data/mydatafile";
// Creation du job
Batch::Job job(param, env);
// On soumet le Job au BatchManager qui le relaie jusqu'au veritable
// gestionnaire de batch sur le serveur. En retour on obtient un
// identifiant unique de notre job (JobId).
const Batch::JobId jobid = bm.submitJob(job);
// On interroge le BatchManager pour connaitre l'etat du Job
const Batch::JobInfo jinfo = jobid.queryJob();
cout << jinfo << endl;
// On detruit l'objet BatchManager
delete &bm;
...