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; ...