Aller au contenu

ENDJOB

Arrêter un travail

En bref

La commande ENDJOB (Arrêter un travail) arrête un travail donné, ainsi que tous les fichiers en entrée associés.

ENDJOB se lit END (Arrêter) + JOB. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

ENDJOB JOB(…)

Paramètres

  • JOB Travail obligatoire
  • OPTION Type d'arrêt
  • DELAY Délai d'arrêt contrôlé
  • SPLFILE Suppression fichiers spoule
  • LOGLMT Maximum postes dans historique
  • ADLINTJOBS Trav interactifs additionnels
  • DUPJOBOPT Option pour travaux dupliqués

Astuce : dans une session 5250, tapez ENDJOB puis F4 pour l'invite de saisie, et F1 sur un paramètre pour son aide.

Aide IBM i de la commande

Texte du F1, IBM i 7.5 en français (bibliothèque QSYS)

Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non

La commande ENDJOB (Arrêter un travail) arrête un travail donné, ainsi que tous les fichiers en entrée associés. Le travail peut être actif, en file d'attente de travaux ou déjà terminé.

Vous pouvez indiquer un délai permettant au programme d'application de contrôler le traitement de fin de travail. Si aucun délai n'est indiqué ou si le ménage ne peut s'effectuer dans le délai imparti, le système exécute un traitement de fin de travail minimal qui peut comprendre :

  • la fermeture des fichiers base de données,
  • l'envoi de l'historique du travail dans une file d'attente en sortie,
  • le ménage des objets internes du système d'exploitation,
  • l'affichage de l'écran d'arrêt du travail (pour les travaux interactifs).
  • l'achèvement du traitement du contrôle de validation.

    Avant de mettre fin au travail, vous devez vérifier qu'aucune unité d'oeuvre logique n'est en attente par suite d'une opération de validation à deux phases. Si c'est le cas, la valeur de l'option de validation Action si ENDJOB peut avoir un effet important sur le traitement de ENDJOB. Par exemple, si l'option de validation Action si ENDJOB a pour valeur par défaut ATTENTE, ce travail sera mis en attente et n'achèvera pas le traitement tant que l'opération de contrôle de validation ne sera pas terminée. Cela permet d'assurer l'intégrité des bases de données sur tous les systèmes connexes. Pour obtenir des instructions spécifiques sur la manière de déterminer ces conditions, et pour connaître toutes les conséquences liées à l'arrêt d'un travail dans ces conditions, reportez-vous au manuel Backup and Recovery.

Restrictions : L'émetteur de la commande doit utiliser un profil utilisateur identique à celui de l'utilisateur du travail à arrêter ou un profil utilisateur disposant du droit spécial d'exploitation des travaux (*JOBCTM). Cette restriction est renforcée même lorsque le travail en cours s'arrête.

L'identité de l'utilisateur du travail correspond au nom du profil utilisateur permettant d'identifier un travail par rapport aux autres travaux. Pour plus d'informations à ce sujet, reportez-vous au manuel 'Work Management'.

Paramètres

Mot-clé Description Valeurs possibles Remarques
JOB Travail Valeurs uniques: *
Autres valeurs: Nom de travail qualifié
Obligatoire, positionnel 1
Qualificatif 1: Travail Nom
Qualificatif 2: Utilisat Nom
Qualificatif 3: Numéro 000000-999999
OPTION Type d'arrêt *CNTRLD, *IMMED Facultatif, positionnel 2
DELAY Délai d'arrêt contrôlé 1-999999, 30 Facultatif, positionnel 3
SPLFILE Suppression fichiers spoule *NO, *YES Facultatif, positionnel 4
LOGLMT Maximum postes dans historique Entier, *SAME, *NOMAX Facultatif
ADLINTJOBS Trav interactifs additionnels *NONE, *GRPJOB, *ALL Facultatif
DUPJOBOPT Option pour travaux dupliqués *SELECT, *MSG Facultatif

Travail (JOB)

Indique le nom qualifié du travail à arrêter.

Ce paramètre est requis.

Valeurs uniques

*
Le travail à partir duquel cette commande est exécutée s'arrête. Le fait de spécifier cette valeur est la seule façon d'arrêter le travail en cours.

Qualificatif 1 : Travail

nom
Indiquez le nom du travail.

Qualificatif 2 : Utilisat

nom
Indiquez le nom de l'utilisateur qui identifie le profil utilisateur sous lequel le travail s'exécute.

Qualificatif 3 : Numéro

000000-999999
Indiquez le numéro de travail attribué par le système.

Remarque :Si aucun nom d'utilisateur ou numéro de travail n'est indiqué, le système recherche les noms de tous les travaux en cours. S'il trouve plus d'une occurrence du nom spécifié, un nom de travail qualifié doit être indiqué explicitement ou via l'écran de sélection. Pour en savoir plus, reportez-vous au paramètre DUPJOBOPT (Option pour travaux dupliqués).

Type d'arrêt (OPTION)

Indique si le travail s'arrête immédiatement ou de façon contrôlée afin de permettre au programme d'application d'effectuer un traitement de fin de travail. Dans les deux cas, le système exécute certaines opérations de ménage du travail.

*CNTRLD
Le travail est arrêté de façon contrôlée. Le programme peut alors procéder à l'apurement des données (traitement de fin de travail). Lorsqu'un travail arrêté comporte une procédure de traitement de signaux pour le signal asynchrone SIGTERM, ce dernier est généré pour ce travail. L'application dispose du temps indiqué au paramètre DELAY pour effectuer le ménage avant la fin du travail.
*IMMED
Le travail est arrêté immédiatement et le système effectue le ménage de fin de travail. La durée de ce ménage peut durer de quelques instants à quelques minutes. Lorsqu'un travail arrêté comporte une procédure de traitement de signaux pour le signal asynchrone SIGTERM, ce dernier est généré pour ce travail et la valeur système QENDJOBLMT définit le temps maximal. A l'exception de l'opération de traitement du signal SIGTERM, le programme en cours n'est pas autorisé à effectuer des opérations de ménage.

Remarque :La valeur *IMMED peut générer des résultats inattendus si les données ont été partiellement mises à jour. Cette valeur doit être utilisée uniquement en cas d'échec de l'arrêt contrôlé.

Remarque :Si un gestionnaire de signaux SIGTERM est en cours d'exécution lors de l'arrêt immédiat d'un travail, vous pouvez utiliser la commande ENDJOB avec OPTION(*IMMED) pour arrêter le gestionnaire. Cette procédure n'est admise que si le gestionnaire de signaux SIGTERM s'exécute depuis au moins deux minutes.

Délai d'arrêt contrôlé (DELAY)

Délai (en secondes) dont dispose le travail pour effectuer le ménage lors d'un arrêt contrôlé. Si le ménage n'est pas terminé à la fin de ce délai, le travail est arrêté immédiatement. (Seul le ménage système est effectué.)

Le temps d'attente est calculé à partir du moment où le travail devient actif s'il était suspendu pour l'une des raisons suivantes :

  • L'option 1 du menu Appel système a été sélectionnée.
  • Le travail est suspendu par la commande HLDJOB (Suspendre un travail).
  • Le travail est transféré à l'aide de la commande TFRSECJOB (Transférer à session alternée).
  • Le travail est transféré à l'aide de la commande TFRGRPJOB (Transférer à travail de groupe).

Remarque :Ce paramètre est admis uniquement lorsque OPTION(*CNTRLD) est indiqué.

30
Un délai de 30 secondes maximum est accordé pour procéder aux opérations de fin de travail avant son arrêt.
1-999999
Indiquez le temps d'attente maximal (en secondes) avant l'arrêt du travail.

Suppression fichiers spoule (SPLFILE)

Indique si les fichiers spoule en sortie créés par ce travail sont conservés pour le traitement normal ou supprimés. Quelque soit l'option choisie, les historiques de travail sont conservés.

*NO
Les fichiers de sortie du travail sont conservés pour édition. Lorsque le travail est arrêté, l'attribut de travail SPLFACN détermine si les fichiers spoule sont détachés du travail ou conservés avec celui-ci.
*YES
Le système supprime les fichiers spoule en sortie créés par le travail arrêté et placés dans les files d'attente en sortie, dans l'espace de nom de la bibliothèque pour l'unité d'exécution qui lance la commande. L'historique est conservé. Si le travail a déjà été arrêté et que l'opération de fichier spoule pour le travail est de détacher les fichiers spoule, la commande ENDJOB ne trouvera pas le travail et les fichiers spoule ne seront pas supprimés.

Maximum postes dans historique (LOGLMT)

Indique le nombre maximal de postes de la file d'attente de messages du travail qui peuvent être enregistrés dans l'historique, pour le travail en cours d'arrêt. Ce paramètre permet de limiter le nombre de messages du fichier imprimante de l'historique (QPJOBLOG).

La valeur indiquée à ce paramètre peut modifier la limite de consignation des messages du travail, même si celui-ci est déjà en cours d'arrêt ou arrêté. Voici quelques exemples de procédures de modification de la limite de consignation des messages :

  1. Si la valeur indiquée est supérieure au nombre de messages consignés au moment de l'exécution de la commande, la consignation des messages se poursuit jusqu'à ce que la nouvelle limite indiquée soit atteinte.
  2. Si la valeur indiquée est inférieure au nombre de messages déjà consignés dans le fichier spoule, un message signalant que la limite a été atteinte est immédiatement placé à la fin du fichier spoule. Les messages restant de la file d'attente ne sont pas pris en compte.
  3. Si 0 (zéro) est indiqué avant la consignation de messages dans le fichier spoule, aucun historique du travail n'est généré pour le travail en cours d'arrêt. Si le travail est déjà arrêté et que l'historique n'a pas encore été généré, celui-ci est supprimé, quelle que soit la valeur de l'attribut de travail LOGOUTPUT. Pour en savoir plus sur la suppression des historiques de travail en instance, reportez-vous aux informations concernant l'API QWTRMVJL.
*SAME
La valeur définie précédemment reste inchangée. Le système utilise la valeur *NOMAX, si aucune limite de consignation des messages n'a été définie pour ce travail dans une précédente commande.
*NOMAX
Tous les messages de la file d'attente de messages du travail doivent être consignés dans l'historique.
nombre-entier
Indiquez le nombre maximal de messages à consigner dans l'historique du travail.

Trav interactifs additionnels (ADLINTJOBS)

Indique si les travaux interactifs additionnels, associés au travail indiqué dans le paramètre JOB (Travail) sont arrêtés.

*NONE
Seul le travail indiqué dans la paramètre JOB est arrêté.
*GRPJOB
Si le travail indiqué dans le paramètre JOB est un travail de groupe, tous les travaux associés au groupe sont arrêtés. S'il ne s'agit pas d'un travail de groupe, le travail indiqué dans le paramètre JOB est arrêté.
*ALL
Tous les travaux interactifs exécutés sur le poste de travail associé au travail indiqué dans le paramètre JOB sont arrêtés (y compris les travaux de groupe et les travaux alternés).

Option pour travaux dupliqués (DUPJOBOPT)

Indique l'action effectuée lorsque des travaux en double sont détectés par cette commande.

*SELECT
L'écran de sélection s'affiche lorsque des travaux en double sont détectés lors d'une session interactive. Sinon, un message est émis.
*MSG
Un message est émis lorsque des travaux dupliqués sont détectés.

Exemples

Exemple 1 : Arrêt immédiat d'un travail

ENDJOB   JOB(JOB1)  OPTION(*IMMED)  SPLFILE(*YES)

Cette commande permet d'arrêter immédiatement un travail appelé JOB1. La sortie spoule générée par le travail est supprimée. L'historique du travail est sauvegardé.

Exemple 2: Sauvegarde de la sortie spoule

ENDJOB   JOB(001234/XYZ/JOB2)  OPTION(*CNTRLD)
         DELAY(50)  SPLFILE(*NO)

Cette commande permet d'arrêter un travail appelé 001234/XYZ/JOB2. La sortie spoule est sauvegardée pour édition. Le travail dispose de 50 secondes pour effectuer toutes les routines de ménage. Il s'arrête immédiatement à l'issue de ce délai.

Exemple 3: Suppression d'un historique de travail en instance

ENDJOB   JOB(543210/ABCDE/JOB3)  LOGLMT(0)

Cette commande permet de supprimer l'historique en instance du travail terminé 543210/ABCDE/JOB3. Le résultat de cette commande est identique à l'exécution de l'API QWTRMVJL.

Exemple 4: Arrêt du travail en cours

ENDJOB   JOB(*)  OPTION(*IMMED)

Cette commande permet d'arrêter le travail dans lequel la commande est émise. Pour sortir d'une procédure de gestion d'un signal SIGTERM après le nettoyage obligatoire, arrêtez immédiatement le travail en cours. Le contrôle peut être renvoyé à l'utilisateur ayant émis la commande même si l'option *IMMED a été utilisée. Pour gérer cette situation, le programme ayant émis cette commande doit renvoyer le contrôle.

Messages d'erreur

Messages *ESCAPE

CPF1317
Aucune réponse du sous-système pour le travail &3/&2/&1.
CPF1321
Travail &3/&2/&1 non trouvé.
CPF1332
Fin des noms dupliqués.
CPF1340
Fonction de contrôle de travail non effectuée.
CPF1341
Lecteur/éditeur &3/&2/&1 non admis comme nom de travail.
CPF1342
Le nom du travail en cours n'est pas admis dans cette commande.
CPF1343
Type du travail &3/&2/&1 incorrect pour la fonction.
CPF1344
Vous n'êtes pas autorisé à contrôler le travail &3/&2/&1.
CPF1351
Erreur dans le sous-système pour le travail &3/&2/&1.
CPF1352
Fonction non exécutée. &3/&2/&1 en transition.
CPF135D
ENDJOB OPTION(*IMMED) non admise actuellement.
CPF1360
&3/&2/&1 déjà arrêté par ENDJOBABN.
CPF1361
Travail &3/&2/&1 déjà en cours d'arrêt avec option *IMMED.
CPF1362
Travail &3/&2/&1 terminé.
CPF1363
Travail &3/&2/&1 déjà en cours d'arrêt avec option *CNTRLD.
CPF8172
Bloc de contrôle du spoule endommagé pour travail &10/&9/&8.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.