Exemple :
Une queue de traitements batch se déclare de cette façon :
bsh:
discipline = fcfs
device = bshdev
bshdev:
backend = /usr/bin/ksh
Pour exécuter un script nommé MonShell.sh en utilisant cette queue batch, tapez :
qprt -Pbsh MonShell.sh
Le système exécute les traitements un par un, dans l'ordre dans lequel ils ont été soumis. Le processus qdaemon redirigera les sorties standard (input, standard output, et erreur) vers /dev/null (la poubelle).
Pour permettre l'exécution de deux traitements en parallèle, déclarez :
bsh:
discipline = fcfs
device = bsh1,bsh2
bsh1:
backend = /usr/bin/ksh
bsh2:
backend = /usr/bin/ksh
Il est même possible de demander un traitement sur un serveur distant ! Ci dessous par exemple, on crée localement une queue nommée "remh" qui passera la commande à la queue "bsh" préalablement déclarée sur un serveur "pluto" (à référencer dans le etc/hosts ou le DNS de l'entreprise) :
remh:
device = rd0
host = pluto
rq = bsh
rd0:
backend = /usr/lib/lpd/rembak
A noter :
- La commande "enq" convertit automatiquement le fichier qconfig en binaire (/etc/qconfig.bin).
- Le fichier qconfig ne doit pas être édité tant que des travaux sont présents dans les queues (édition manuelle ou via commande mkque, rmque, chque, mkquedev, rmquedev, chquedev),
- La commande "enq -G" suspend la queue une fois tous les traitements terminés,
- La commande "startsrc -s qdaemon" redémarre le démon.
Mise en place
Je n'ai pas eu l'occasion de tester cet outil, mais il me semble intéressant ...
Ci dessous ce que j'en ferais :
1) Faites paramétrer les files d'attente via le fichier /etc/qconfig (AIX).
Attention :
- Ceci est de la prérogative de l'administrateur Unix de la machine,
- Ce paramétrage est fait pour la machine, c'est a dire pour toutes les applications hébergées.
Par exemple pour 3 files d’attente nommées « bshnjl », « bshnbx » et « bshall » de respectivement 4, 4 et 9 batchs pour les paies à la demande, les paies de correction et explorations, les autre batch :
bshnjl:
discipline = fcfs
device = bshnjl1,bshnjl2,bshnjl3,bshnjl4
bshnjl1:
backend = /usr/bin/ksh
...
bshnjl4:
backend = /usr/bin/ksh
bshnbx:
discipline = fcfs
device = bshnbx1,bshnbx2,bshnbx3,bshnbx4
bshnbx1:
backend = /usr/bin/ksh
...
bshnbx4:
backend = /usr/bin/ksh
bshall:
discipline = fcfs
device = bshall1,bshall2,bshall3,bshall4,bshall5,bshall6,bshall7,bshall8,bshall9
bshall1:
backend = /usr/bin/ksh
...
bshall9:
backend = /usr/bin/ksh
2) Sous HR Access, modifiez le script ${SIGACS}/bin/job.
Exemple ci joint :
- les paies à la demande NJL sont lancées sur la queue bshnjl
- les paies de correction et explorations sur la queue bshnbx
- tous les autre batch sur la queue bshall
...
# Lancement d'un script de $SIGACS/bin
if [ ! "$T" ]
then
JSCRI=`echo "$PARAM"|cut –c14-21| tr –d ‘ ‘`
echo "sh $SIGACS/bin/$PHASE '$PARAM' 1>$LOG/$JOBLOG 2>&1; rm \${0}" > $TMP/OPER.$$.pendingjob
case ${JSCRI} in
[A-Z,0-9]*NJL)
qprt -Pbshnjl "$TMP/OPER.$$.pendingjob" 2>> $TMP/a.batch
;;
[A-Z,0-9]*NJC|[A-Z,0-9]*NBX)
qprt -Pbshnbx "$TMP/OPER.$$.pendingjob" 2>> $TMP/a.batch
;;
*)
qprt -Pbshall "$TMP/OPER.$$.pendingjob" 2>> $TMP/a.batch
;;
esac
else
...
Aucun commentaire:
Enregistrer un commentaire