Cette section décrit la commande uxsubjob utilisée pour soumettre un job sous UNIX / Linux.
La commande uxsubjob permet de soumettre un job en queue batch. Le paramètre nœud DQM_ENABLE_SUBJOB doit être défini à Oui pour que la commande soit prise en compte. Le code retour est 0 si le job a bien été soumis dans la queue batch. Si le paramètre nœud DQM_ENABLE_SUBJOB est défini à Non, la commande ne fait rien et retourne 0.
Cette commande ne fonctionne que sur le nœud local.
La syntaxe de cette commande est la suivante :
uxsubjob QUEUE=queue CMD=filename LOG=logname|NOLOG [USER=username] [NAME=processname] [PRI=priority] [PARAM="param1,param2,...param30"]
Description des items
QUEUE=
Nom de la queue batch dans laquelle sera soumis le job. la queue batch doit être locale : queue physique locale ou queue logique locale. Si la queue logique locale contient des queues physiques distantes, seules celles sur UNIX / Linux sont autorisées.
Format : 31 caractères alphanumériques.
CMD=
Chemin et nom du fichier de commande (selon les standards du système d'exploitation) à exécuter en queue batch.
Format : 255 caractères alphanumériques.
LOG=
Chemin et nom du fichier log (selon les standards du système d'exploitation) d'exécution du job.
Format : 255 caractères alphanumériques.
Saisissez NOLOG pour envoyer la sortie du job sur /dev/null.
Si le job est soumis dans une queue logique locale liée à une queue physique distante, un fichier log est créé sur la machine distante, le DQM distant envoie le log au DQM local qui crée le fichier log sur la machine locale. Le nom du fichier log sur la machine distante est complété par l'ID du nœud Dollar Universe (nom court). Deux fichiers log sont donc créés pour une seule exécution.
Par exemple : si LOG="/temp/logfile.txt" et si le job est soumis dans une queue logique locale liée à une queue physique distante, l'exécution du job sur le DQM distant crée le fichier "/temp/logfile.txtN0000001" (si N0000001 est l'ID du nœud distant). Puis le DQM distant envoie le log au DQM local qui crée le fichier "/temp/logfile.txt" en local.
Donc, si les deux machines partagent le même système de fichiers, un même job crée le même fichier sous deux noms différents logfile.txt et logfile.txtN0000001 dans le même répertoire /temp.
USER=
(Optionnel) Nom de l'utilisateur pour le compte duquel doit être exécuté le job.
Format: 12 caractères alphanumériques.
Défaut :nom de l'utilisateur qui exécute la commande uxsubjob.
NAME=
(Optionnel) Nom que prend le processus au sein de la queue batch.
Défaut : nom du fichier de commande précisé dans cmd, sans le répertoire.
PRI=
(Optionnel) Priorité de soumission de base qu'aura le job dans la queue batch. Cette priorité sera ensuite gérée au sein de la queue batch en fonction des paramètres de cette queue batch et en particulier de la gestion dynamique des priorités.
Format : 0 à 255. Si la priorité est supérieure à 255, elle est ramenée à 255.
Défaut : priorité de base de la queue.
PARAM=
(Optionnel) Liste des paramètres qui doivent être transmis au fichier de commande cmd. Le nombre maximum de paramètres transmis est de 30.
Format : "param1,param2,...param30"
La longueur de chaque paramètre ne doit pas excéder 255 caractères et la longueur totale (somme des longueurs + 2 fois le nombre de paramètres) doit être inférieure à 2074.
Exemple
L’exécution de cette commande soumet le job bck_jour.sh dans la queue batch :
$UNI_DIR_EXEC/uxsubjob QUEUE=SYS_BATCH CMD=$UXPEX/bck_jour.sh LOG=$UXLOG/bck_jour.log
Optimisation
La commande uxsubjob accède aux fichiers variables.xml et values.xml pour récupérer la valeur de certaines variables. Si plusieurs commandes uxsubjob se succèdent dans la même session, il peut être intéressant de commencer par charger ces variables en mémoire avant d'exécuter les commandes.
export U_LOG_DUMP_CAPACITY=`$UNI_DIR_EXEC/unigetvar U_LOG_DUMP_CAPACITY`
export U_LOG_DUMP_MSGLEN=`$UNI_DIR_EXEC/unigetvar U_LOG_DUMP_MSGLEN`
export U_LOG_DUMP=`$UNI_DIR_EXEC/unigetvar U_LOG_DUMP`
export U_LOG_FILE=`$UNI_DIR_EXEC/unigetvar U_LOG_FILE`
export U_LOG_LEVEL=`$UNI_DIR_EXEC/unigetvar U_LOG_LEVEL`
export U_ARCHLOG_LOCK=`$UNI_DIR_EXEC/unigetvar U_ARCHLOG_LOCK`
export UXLEX=`$UNI_DIR_EXEC/unigetvar UXLEX`
export U_SSL_ENABLED=`$UNI_DIR_EXEC/unigetvar U_SSL_ENABLED`
export U_SSL_TIMEOUT=`$UNI_DIR_EXEC/unigetvar U_SSL_TIMEOUT`
export U_SSL_PRIVATE_KEY_PATH=`$UNI_DIR_EXEC/unigetvar U_SSL_PRIVATE_KEY_PATH`
export U_SSL_PRIVATE_KEY=`$UNI_DIR_EXEC/unigetvar U_SSL_PRIVATE_KEY`
export U_SSL_SERVER_CERT_PATH=`$UNI_DIR_EXEC/unigetvar U_SSL_SERVER_CERT_PATH`
export U_SSL_SERVER_CERT=`$UNI_DIR_EXEC/unigetvar U_SSL_SERVER_CERT`
export U_SSL_CA_PATH=`$UNI_DIR_EXEC/unigetvar U_SSL_CA_PATH`
export U_SSL_CA=`$UNI_DIR_EXEC/unigetvar U_SSL_CA`
export U_SSL_CA_ALIAS=LIST:
export S_ID_COMPANY=`$UNI_DIR_EXEC/unigetvar S_ID_COMPANY`
export S_NODENAME=`$UNI_DIR_EXEC/unigetvar S_NODENAME`
export S_NOEUD=`$UNI_DIR_EXEC/unigetvar S_NOEUD`
export U_LST_SRV_PORT=`LIST:$UNI_DIR_EXEC/unigetvar U_LST_SRV_PORT|tr '\n' ','|sed 's/,$//'`
export U_LOCALHOSTNAME=`$UNI_DIR_EXEC/unigetvar U_LOCALHOSTNAME`
export U_CLUSTER=`$UNI_DIR_EXEC/unigetvar U_CLUSTER`
export S_TIMEOUT=`$UNI_DIR_EXEC/unigetvar S_TIMEOUT`
export U_CONNECT_ITER_INTERVAL=`$UNI_DIR_EXEC/unigetvar U_CONNECT_ITER_INTERVAL`
export U_CONNECT_ITER_NBMAX=`$UNI_DIR_EXEC/unigetvar U_CONNECT_ITER_NBMAX`
export UNI_EXTAUTH_ENABLED=`$UNI_DIR_EXEC/unigetvar UNI_EXTAUTH_ENABLED`
export UXDEX=`$UNI_DIR_EXEC/unigetvar UXDEX`
export S_U_LANGUE=`$UNI_DIR_EXEC/unigetvar S_U_LANGUE`
export IS_BATCH_ENV_LOADED=`Y`
uxsubjob ...
uxsubjob ...
Cette méthode permet d'améliorer les performances.