Aller au contenu

APYJRNCHG

Appliquer modifs journalisées

En bref

La commande APYJRNCHG (Appliquer les modifications journalisées) permet d'appliquer les modifications journalisées pour un objet journalisé spécifique sur une version sauvegardée de l'objet pour rétablir celui-ci après une erreur opérationnelle ou un dommage quelconque.

APYJRNCHG se lit APY (Appliquer) + JRNCHG. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

APYJRNCHG JRN(…)

Paramètres

Astuce : dans une session 5250, tapez APYJRNCHG 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 APYJRNCHG (Appliquer les modifications journalisées) permet d'appliquer les modifications journalisées pour un objet journalisé spécifique sur une version sauvegardée de l'objet pour rétablir celui-ci après une erreur opérationnelle ou un dommage quelconque.

Le contenu de l'objet change et la plupart des modifications de niveau objet peuvent être appliquées. Parmi les exemples de modifications de niveau objet, citons les postes générés par des instructions SQL telles que ALTER TABLE et par de nombreuses commandes du système d'exploitation (CHGPF, RMVM, MOVOBJ, MOV, RNMOBJ et RNM, par exemple). Bien entendu, les modifications de niveau objet ne générant pas de poste de journal ne sont pas applicables.

Certaines modifications en principe appliquées risquent de ne pas l'être pour les raisons suivantes :

  • Les postes de journal ignorées ne sont pas appliquées. Utilisez la commande DSPJRN (Afficher journal) pour déterminer si une entrée du journal est marquée comme ignorée lors de l'application.
  • Certaines modifications de niveau objet ne s'appliquent que pour des postes générés dans le récepteur en V5R3 ou supérieure. Ces postes sont les suivants :
    • D MA (membre ajouté)
    • D FM (fichier déplacé)
    • D FN (fichier renommé)
    • E EM (zone de données déplacée)
    • E EN (zone de données renommée)
  • Certains postes de file d'attente ne s'appliquent que pour des postes générés dans le récepteur en V5R4 ou supérieure.
  • Les postes de fichier logique ne s'appliquent que pour des postes générés dans le récepteur en V6R1 ou supérieure.

    Remarque :Les postes de fichier logique créés sur V5R4 ou une version antérieure seront appliqués si OBJ(*ALLJRNOBJ) est indiqué.

  • Certaines modifications de niveau objet ne s'appliquent que pour des postes générés dans le récepteur en V6R1 ou supérieure. Ces postes sont les suivants :
    • D CT (création d'un fichier base de données)
    • E EE (zone de données créée)
    • E ED (zone de données supprimée)
    • Q QA (file d'attente de données créée)
    • Q QD (file d'attente de données supprimée)

    Remarque :Les postes D CT (création d'un fichier base de données) créés sur des systèmes V5R4 ou ultérieur seront appliqués si OBJ(*ALLJRNOBJ) est indiqué.

Certaines modifications de niveau objet appliquées sont des postes issus d'instructions SQL. La réexécution de ces postes peut allonger l'exécution de APYJRNCHG. Le délai de réexécution par défaut du poste ALTER TABLE, REFRESH TABLE ou de réorganisation du poste de fichier physique est 24 heures, le délai par défaut étant de 12 heures pour un poste de validation, d'invalidation ou d'annulation d'invalidation. Le délai de réexécution par défaut du poste DROP TABLE est de 1 heure, et de 5 minutes pour les autres postes de modification SQL de niveau objet.

Pour attribuer une valeur supérieure ou inférieure à ce réglage, ajoutez une variable d'environnement dénommée :

  • QIBM_JO_APPLY_ALTER_TABLE_TIMEOUT - poste modification de table (D CG)
  • QIBM_JO_APPLY_REFRESH_TABLE_TIMEOUT - poste régénération de table (D TQ)
  • QIBM_JO_APPLY_DROP_TABLE_TIMEOUT - poste suppression de table (F DM), poste suppression de fichier (D DT) et poste suppression de membre (F DM)
  • QIBM_JO_APPLY_REORG_TIMEOUT - poste réorganisation de fichier physique (F RM)
  • QIBM_JO_APPLY_TIMEOUT - pour tous les autres postes de modification de niveau objet
  • QIBM_JO_APPLY_CM_RB_CN_TIMEOUT - poste validation (C CM), invalidation (C RB), annulation d'invalidation (C CN)

    Remarque :Ce délai d'attente affecte uniquement les cycles de contrôle de validation contenant des postes de modification de niveau objet pour les fichiers base de données.

La valeur de toutes les variables d'environnement est exprimée en secondes.

La valeur minimale pour n'importe laquelle de ces variables d'environnement est 60 secondes. Si une valeur inférieure à 60 est indiquée pour n'importe laquelle de ces variables d'environnement, une valeur de 60 secondes sera employée.

Ces variables d'environnement doivent figurer en majuscules et être définie avant l'exécution de la commande APYJRNCHG.

Remarque :Les commandes de manipulation de variable d'environnement sont les suivantes : ADDENVVAR (ajout), CHGENVVAR (modification) et WRKENVVAR (gestion).

Pour obtenir la liste complète des différents postes et savoir comment ils sont gérés par cette commande (y compris les postes qui peuvent interrompre la commande), reportez-vous au manuel Ensemble de rubriques Journal Management de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/

Une unité d'exécution secondaire permet d'appliquer les modifications d'objet du système de fichiers intégré et les modifications de niveau objet à des objets bibliothèque. L'application de certains postes de journal peut échouer si la valeur système QMLTTHDACN est fixée à 3 (*NORUN). La valeur de QMLTTHDACN recommandée lors d'une opération APYJRNCHG est 2. L'état de l'unité d'exécution secondaire peut être contrôlé à l'aide de l'option 20 de la commande WRKJOB.

Les modifications journalisées sont appliquées depuis le point de départ indiqué (la dernière sauvegarde de l'objet ou un poste particulier du journal) jusqu'au point de fin. Le point de fin peut correspondre à l'endroit où toutes les modifications ont été effectuées dans l'objet, où la dernière restauration de l'objet a eu lieu, où un poste particulier a été atteint, où un délai prédéfini a expiré ou encore où l'objet a été ouvert ou fermé par un travail (Le paramètre CMTBDY permet de gérer les modifications en attente).

Si vous supprimez des objets avant de restaurer des objets dans le cadre de votre scénario de restauration, vous devez être attentif à la sélection de la plage de postes de journal à appliquer. Il faut garder à l'esprit que les postes suivants seront appliqués s'ils figurent dans la plage indiquée.

  • Poste de journal code F type DM (suppression de membre)
  • Poste de journal code D type DT (suppression de fichier)
  • Poste de journal code B types B4 et B5 (objet système de fichiers intégré délié)
  • Poste de journal code E type ED (zone de données supprimée)
  • Poste de journal code Q type QD (file d'attente de données supprimée)
  • Poste de journal code Y type YD (suppression de bibliothèque)

Dans ces trois cas, il est recommandé soit de spécifier un numéro de séquence de fin, soit d'effectuer la reprise à une date et une heure précises (condition préalable à toute opération de reprise).

Remarque :La commande DSPJRN (Afficher un journal) permet de déterminer les points de départ et/ou de fin.

Une liste d'objets journalisés peut être définie. Les modifications journalisées sont appliquées dans l'ordre des postes du journal, c'est-à-dire l'ordre dans lequel les modifications des objets ont été effectuées.

En ce qui concerne les fichiers base de données, les opérations de niveau enregistrement n s'effectuent pas sous contrôle de validation. Cependant, les opérations de niveau objet précédemment réalisées sous contrôle de validation sur des fichiers base de données s'effectuent dans les mêmes conditions lors de l'application. Si la transaction de contrôle de validation a été validée initialement, les opérations de niveau objet seront validées lors de l'application du poste de validation correspondant. Si la transaction de contrôle de validation a été annulée initialement, les opérations de niveau objet seront annulées lors de l'application du poste d'annulation correspondant. Si l'opération du contrôle de validation ne se termine pas à l'intérieur de la plage de postes en cours d'application, les modifications sont annulées.

Si, durant l'application de modifications de niveau objet à une base de données, l'opération se termine avant le poste de validation ou d'annulation à traiter, toutes les opérations de niveau objet en attente d'application sur des fichiers base de niveau sont validées ou annulées, selon que la transaction a été validée ou annulée initialement. Il n'en va pas de même avec les modifications de niveau enregistrement apportées à des fichiers base de données. Si une erreur se produit lors de l'application de modifications de niveau enregistrement à un fichier base de données, le numéro de séquence du dernier poste appliqué est retourné. Le poste correspondant à ce numéro de séquence et tous les postes antérieurs à ce numéro sont considérés comme appliqués ; l'utilisateur peut donc poursuivre l'opération d'application à partir du numéro de séquence retourné plus un point. Puisque les opérations de niveau objet en souffrance réalisées avant ce numéro de séquence risquent d'être annulées, il est important d'examiner attentivement le journal et de reprendre manuellement l'application de postes.

Si, lors de l'application de toutes les modifications de niveau objet, une annulation (ROLLBACK) est effectuée sur une opération de niveau objet apportée à un fichier base de données en raison d'une erreur ou si l'un des postes de journal restants provoque l'arrêt de la commande APYJRNCHG, le système risque de se trouver dans une situation où des modifications partielles de niveau objet ont été appliquées et où certaines transactions ne se trouvent pas à une frontière de validation. Il convient alors d'examiner le journal attentivement et de poursuivre le traitement manuellement.

Par exemple, une transaction contient plusieurs insertions, suivies d'un ajout de colonne réalisé à l'aide d'une instruction ALTER TABLE, lui-même suivi de plusieurs insertions (de longueur différente aux premières) ; cette transaction se termine par une instruction ROLLBACK. Si l'opération d'application est interrompue immédiatement après l'instruction ALTER TABLE, le système, considérant que la transaction s'est terminée dans une opération ROLLBACK, annulerait l'opération ALTER TABLE. Dans ce cas, si l'application reprenait, le second jeu d'insertions échouerait en raison d'une discordance de longueurs d'enregistrement. Alors que ce scénario est improbable, il est important de comprendre les mécanismes sous-jacents de l'application, afin de poursuivre le traitement en cas d'erreur.

Les modifications apportées aux objets de système de fichiers intégré ne sont jamais appliquées sous le contrôle de validation, même si les opérations d'origine ont été réalisées dans ce cadre.

De nouveaux objets peuvent être créés lors de l'application des modifications journalisées. De même, des fichiers logiques peuvent lancer la journalisation dans le cadre du processus d'application. Les objets doivent être ajoutés à la liste des objets avant de pouvoir appliquer les modifications qui leur ont été apportées. Le système les ajoutera automatiquement à la liste s'il trouve des postes de journal spécifiques correspondant aux objets associés. Par exemple, pour être en mesure d'appliquer un code journal D, poste de journal de type de poste CT (création de fichier), un poste précédent pour la bibliothèque du code Y et type YO (objet ajouté à la bibliothèque) doivent être appliqués en premier. D'autres postes incluent D MA (membre ajouté) et D LF (association de fichier logique). Cette restriction ne s'applique pas si OBJ(*ALLJRNOBJ) est indiqué.

Si un poste code journal J type SI (correspondant à JRNSTATE(*STANDBY)) est trouvé, l'opération s'arrête pour tous les objets quelle que soit la valeur OBJERROPT indiquée. Il peut en résulter une mise à jour partielle d'objets à partir de postes de journal.

La commande peut également s'interrompre pour un objet précis lorsque les postes du journal contiennent des opérations qu'elle ne peut pas réexécuter. Si cette application rencontre d'autres modifications pour cet objet, celles-ci ne seront pas appliquées. En revanche, l'opération se poursuivra pour les autres objets indiqués si OBJERROPT(*CONTINUE) est employé. Par exemple, la commande prend fin pour un objet précis lorsqu'une des situations suivantes se vérifie pour un poste de journal :

  • Un objet, en cours d'utilisation lors de l'arrêt système, n'a pas pu être synchronisé avec le journal.
  • Un objet a été restauré.
  • Le système avait déjà appliqué ou retiré les modifications à l'aide de la commande APYJRNCHG ou RMVJRNCHG.

Pour obtenir la liste complète des différents postes et savoir comment ils sont gérés par cette commande (y compris les postes qui peuvent interrompre la commande), reportez-vous au manuel Ensemble de rubriques Journal Management de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/ Recherchez "actions d'application ou de retrait de modifications journalisées".

La commande s'interrompt également en présence de conditions illogiques. Par exemple, lors des opérations suivantes :

  • Ajout d'un enregistrement à un numéro relatif d'enregistrement existant pour un membre de fichier base de données
  • Ajout d'un enregistrement au-delà de la position de l'enregistrement suivant, après la fin du fichier base de données
  • Ajout d'un enregistrement comportant une clé en double pour un membre de fichier base de données
  • Tentative de suppression d'un enregistrement déjà supprimé pour un membre de fichier base de données
  • Mise à jour d'un enregistrement inexistant dans un membre de fichier base de données
  • Ajout d'un lien vers un répertoire inexistant

La plupart de ces conditions illogiques surviennent lorsque l'application des modifications journalisées n'est pas démarrée au bon endroit du journal compte tenu du contenu des objets.

Si la commande s'arrête en raison de conditions illogiques mais qu'il est possible de relancer l'opération d'application, vous pouvez relancer la commande, en indiquant un nouveau numéro de séquence de début.

L'application des modifications reste possible lorsque les numéros de séquence ont été redéfinis. Le système envoie un message d'information et poursuit l'application des modifications.

Restrictions :

  • Cette commande est fournie avec le droit public *EXCLUDE et les profils utilisateur QPGMR et QSRV disposent des droits privés requis pour son utilisation.
  • Les modifications des objets indiqués dans cette commande doivent être journalisées.
  • Le contrôle de validation ne peut pas être actif dans le travail avant l'utilisation de cette commande.
  • Si un objet est restauré avant l'application des modifications, ce dernier doit avoir été journalisé lors de la sauvegarde.
  • Les objets indiqués dans la commande sont alloués exclusivement lors de l'application des modifications. Si un objet ne peut pas être alloué, la commande prend fin et aucune modification journalisée n'est appliquée.
  • Si aucun poste de journal ne correspond à la période indiquée dans la commande, cette dernière prend fin et aucune modification journalisée n'est appliquée.
  • Si les numéros de séquence des journaux ont été réinitialisés dans la plage de récepteurs définie et qu'un numéro de séquence est indiqué au paramètre FROMENTLRG, FROMENT, TOENTLRG ou TOENT, la première occurrence du numéro de séquence spécifié pour l'un des paramètres est utilisée.
  • Les paramètres TOJOBO et TOJOBC ne peuvent pas être utilisés pour indiquer quand doit prendre fin l'application des modifications journalisées si un ou plusieurs récepteurs de journal de la plage indiquée étaient attachés à un journal défini avec une option de taille du récepteur (RCVSIZOPT) ou une option de données à longueur fixe (FIXLENDTA) qui aurait omis ces données.
  • Les paramètres TOJOBO et TOJOBC ne peuvent être utilisés si l'objet pour lequel des modifications sont mises en oeuvre n'étaient pas des postes d'ouverture et de fermeture d'enregistrement. Pour plus de détails, reportez-vous au paramètre OMTJRNE des commandes STRJRN, STRJRNPF, STRJRNLIB et CHGJRNOBJ.
  • Le nombre maximal d'objets pour lesquels des modifications peuvent être appliquées à l'aide de cette commande est de 12 000 000. Si les spécifications contiennent plus de 12 000 000 objets, un message d'erreur est émis et aucune modification n'est appliquée. Vous pouvez modifier les valeurs du paramètre FILE, OBJ ou OBJPATH de manière à ne pas dépasser la limite admise.

    La limite inclut tout objet créé suite à l'application des modifications journalisées à un autre objet. Ceci peut se produire lors de l'opération d'application si celle-ci porte sur un poste de fichier qui tente ensuite de créer un membre, sur un poste de bibliothèque qui tente ensuite de créer un objet dans ladite bibliothèque ou sur un poste de répertoire qui tente ensuite de créer un objet du système de fichier intégré. Si la limite est atteinte, le nouveau membre ou le nouvel objet ne sera pas créé. APYJRNCHG arrêtera l'application de l'objet à l'origine de l'opération de création. Tous les postes du fichier, de la bibliothèque ou du répertoire antérieurs resteront appliqués. De même, l'opération d'application se poursuivra pour tous les autres membres du fichier ou objets de la bibliothèque ou du répertoire créé avant le dépassement de la limite des 12 000 000 objets si OBJERROPT(*CONTINUE) a été indiqué.

    Lors de l'application de modifications d'un fichier base de données, un objet est associé à chaque membre et un objet supplémentaire l'est au fichier.

  • OBJ(*ALLJRNOBJ)est incompatible avec le paramètre OBJPATH. OBJ(*ALLJRNOBJ) inclut des objets du système de fichiers intégré.
  • L'exécution de la commande APYJRNCHG en vue d'appliquer des modifications en provenance d'un récepteur de journal avec des postes consignés à partir d'une autre édition (plus ancienne ou plus récente) peut avoir des résultats inattendus.
  • Il n'est pas possible d'utiliser la commande APYJRNCHG pour appliquer des modifications en provenance de récepteurs de journal sur lesquels des postes de journal sont susceptibles de manquer suite au filtrage des objets journal éloigné ou au filtrage des programmes.

Paramètres

Mot-clé Description Valeurs possibles Remarques
JRN Journal Nom d'objet qualifié Obligatoire, positionnel 1
Qualificatif 1: Journal Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
FILE Nom du fichier journalisé Values (jusqu'à 300 répétitions): Liste d'éléments Facultatif, positionnel 2
Élément 1: Fichier physique journalisé Nom d'objet qualifié
Qualificatif 1: Fichier physique journalisé Nom, *ALL
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
Élément 2: Membre Nom, *ALL, *FIRST
OBJ Objets Valeurs uniques: *ALLJRNOBJ
Autres valeurs (jusqu'à 300 répétitions): Liste d'éléments
Facultatif
Élément 1: Objet Nom d'objet qualifié
Qualificatif 1: Objet Nom, *ALL
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
Élément 2: Type d'objet *FILE, *DTAARA, *DTAQ, *LIB, *ALL
Élément 3: Membre, si fichier BD Nom, *ALL, *FIRST
OBJPATH Objets Values (jusqu'à 300 répétitions): Liste d'éléments Facultatif
Élément 1: Nom Chemin d'accès
Élément 2: Inclure ou omettre *INCLUDE, *OMIT
SUBTREE Branche du répertoire *ALL, *NONE Facultatif
PATTERN Masque du nom Values (jusqu'à 20 répétitions): Liste d'éléments Facultatif
Élément 1: Masque Valeur caractère, *
Élément 2: Inclure ou omettre *INCLUDE, *OMIT
APYLF Appliquer modif fich logiques *YES, *NO Facultatif
RCVRNG Plage de récepteurs de journal Valeurs uniques: *LASTSAVE, *CURRENT
Autres valeurs: Liste d'éléments
Facultatif, positionnel 3
Élément 1: Début au récepteur de journal Nom d'objet qualifié
Qualificatif 1: Début au récepteur de journal Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
Élément 2: Fin au récepteur de journal Valeurs uniques: *CURRENT
Autres valeurs: Nom d'objet qualifié
Qualificatif 1: Fin au récepteur de journal Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
FROMENTLRG Premier num. séq. maxi Valeur caractère, *LASTSAVE, *FIRST Facultatif
TOENTLRG Dern. num. séq. maxi Valeur caractère, *LASTRST, *LAST Facultatif
TOTIME Date et heure de fin Liste d'éléments Facultatif
Élément 1: Date de fin Date
Élément 2: Heure de fin Heure
TOJOBO Nom de travail qualifié Nom de travail qualifié Facultatif
Qualificatif 1: Nom de travail qualifié Nom
Qualificatif 2: Utilisat Nom
Qualificatif 3: Numéro 000000-999999
TOJOBC Nom de travail qualifié Nom de travail qualifié Facultatif
Qualificatif 1: Nom de travail qualifié Nom
Qualificatif 2: Utilisat Nom
Qualificatif 3: Numéro 000000-999999
CMTBDY Frontière de validation *YES, *NO Facultatif
OPTION Option *NONE, *IGNINQMSG Facultatif
OBJERROPT Option erreur objet *CONTINUE, *END Facultatif
OUTPUT Sortie *NONE, *OUTFILE Facultatif
OUTFILE Fichier recevant la sortie Nom d'objet qualifié Facultatif
Qualificatif 1: Fichier recevant la sortie Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
OUTMBR Options pour membre de sortie Liste d'éléments Facultatif
Élément 1: Membre recevant la sortie Nom, *FIRST
Élément 2: Remplacement ou ajout enregs *REPLACE, *ADD
DETAIL Détail *ALL, *ERR Facultatif
FROMENT Numéro de séquence de début 1-9999999999, *LASTSAVE, *FIRST Facultatif
TOENT Numéro de séquence de fin 1-9999999999, *LASTRST, *LAST Facultatif

Journal (JRN)

Indique le journal associé aux postes à appliquer.

Ce paramètre est obligatoire.

Qualificatif 1 : Journal

nom-journal
Indique le nom du journal associé aux postes à appliquer.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le système effectue la recherche dans la bibliothèque en cours du travail. Si cette dernière n'est pas précisée, QGPL est prise par défaut.
nom-bibliothèque
Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.

Nom du fichier journalisé (FILE)

Indique les noms qualifiés de fichiers base de données physiques (jusqu'à 300) auxquels des postes de journal sont appliqués.

Vous devez indiquer soit le paramètre FILE, soit l'un des paramètres sur les objets (OBJ ou OBJPATH), mais pas les deux.

Elément 1 : Fichier physique journalisé

Qualificatif 1 : Fichier physique journalisé

*ALL
La commande affecte tous les fichiers physiques de la bibliothèque indiquée dont les modifications sont enregistrées dans le journal indiqué. Le nom de la bibliothèque est obligatoire. Si *ALL est indiqué alors que l'utilisateur ne possède pas les droits requis sur tous les fichiers de la bibliothèque, un message est émis et l'application des modifications prend fin.
nom-fichier
Entrez le nom du fichier base de données physique affecté par cette commande. Si *ALL est indiqué pour le premier élément du paramètre, la valeur indiquée pour le nom de membre est utilisée pour tous les fichiers correspondants de la bibliothèque. Par exemple, si *FIRST est indiqué, les modifications sont apportées au premier membre de tous les fichiers correspondants de la bibliothèque.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le système effectue la recherche dans la bibliothèque en cours du travail. Si cette dernière n'est pas précisée, QGPL est prise par défaut.
nom-bibliothèque
Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.

Elément 2 : Membre

Entrez le nom du membre affecté par cette commande.

*ALL
La commande affecte tous les membres du fichier.
*FIRST
La commande affecte le premier membre du fichier.
nom-membre
Entrez le nom du membre affecté par cette commande. Si un nom de membre ou *FIRST est indiqué (et non pas *ALL), aucune modification de niveau objet pour ce fichier ne sera appliquée. Lorsque *ALL est indiqué, toutes les modifications de niveau objet de ce fichier sont appliquées.

Objets (OBJ)

Indique soit jusqu'à 300 objets auxquels des postes de journal sont appliqués, soit tous les objets actuellement journalisés (option *ALLJRNOBJ).

Vous devez indiquer soit le paramètre FILE, soit l'un des paramètres sur les objets (OBJ ou OBJPATH), mais pas les deux.

Valeurs uniques

*ALLJRNOBJ
Les postes de tous les objets actuellement journalisés dans le journal indiqué sont appliqués. Ceci comprend les objets de type *FILE, *DTAARA, *DTAQ, *LIB, *STMF, *DIR et *SYMLINK. Le paramètre OBJPATH ne peut être indiqué en présence de cette valeur.

Elément 1 : Objet

Qualificatif 1 : Objet

*ALL
La commande affecte tous les objets de la bibliothèque indiquée du type précisé dont les modifications sont journalisées dans le journal indiqué. Le nom de bibliothèque doit être indiqué. Si *ALL est indiqué alors que l'utilisateur ne possède pas les droits requis sur tous les objets de la bibliothèque, un message est émis et l'application des modifications prend fin.
nom-objet
Entrez le nom de l'objet qui doit être affecté par cette commande.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le système effectue la recherche dans la bibliothèque en cours du travail. Si cette dernière n'est pas précisée, QGPL est prise par défaut.
nom-bibliothèque
Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.

Elément 2 : Type d'objet

Ce paramètre définit également le type de l'objet concerné.

*FILE
Les postes correspondant aux membres de fichiers base de données sont appliqués.
*DTAARA
Les postes correspondant aux zones des données sont appliqués.
*DTAQ
Les postes correspondant aux files d'attente sont appliqués.
*LIB
Les postes correspondant aux bibliothèques sont appliqués. De même, tous les objets créés dans la bibliothèque et ayant démarré la journalisation suite à un héritage de journalisation de bibliothèque dans la plage des postes de journal appliquée seront créés dans le cadre de l'application et leurs postes seront appliqués.
*ALL
Les postes de tous les types d'objet disponibles dans cette option sont appliqués. Les types d'objet *ALL sont uniquement admis lorsque *ALL est indiqué pour le nom d'objet.

Elément 3 : Membre, si fichier BD

Entrez le nom du membre affecté par cette commande. Si *ALL est indiqué pour la première partie du paramètre, la valeur indiquée pour le nom de membre est utilisée pour tous les fichiers correspondants de la bibliothèque. Par exemple, si *FIRST est indiqué, les modifications sont apportées au premier membre de tous les fichiers correspondants de la bibliothèque.

Remarque :Si le type d'objet indiqué n'est pas *FILE, la valeur de l'élément nom de membre est ignorée.

*ALL
La commande affecte tous les membres du fichier.
*FIRST
La commande affecte le premier membre du fichier.
nom-membre
Entrez le nom du membre affecté par cette commande. Si un nom de membre ou *FIRST est indiqué (et non pas *ALL), aucune modification de niveau objet pour ce fichier ne sera appliquée. Lorsque *ALL est indiqué pour un fichier, toutes les modifications de niveau objet de celui-ci sont appliquées.

Objets (OBJPATH)

Indique jusqu'à 300 objets auxquels sont appliqués des postes de journal. Seuls sont pris en charge les objets dont le nom de chemin identifie un objet de type *STMF, *DIR ou *SYMLNK présent sur les systèmes de fichiers root (/) et QOpenSys et sur le système de fichiers par l'utilisateur.

Vous devez indiquer soit le paramètre FILE, soit l'un des paramètres sur les objets (OBJ ou OBJPATH), mais pas les deux. OBJPATH n'est pas admis en présence de OBJ(*ALLJRNOBJ).

Elément 1 : Nom

nom-chemin
Entrez le nom de l'objet qui doit être affecté par cette commande.

Il est possible d'indiquer un modèle dans la dernière partie du nom de chemin. Un astérisque (*) correspond à un nombre quelconque de caractères, alors qu'un point d'interrogation (?) désigne un seul caractère. Si le nom de chemin est qualifié ou contient un modèle, il doit figurer entre apostrophes. Les liens symboliques du nom de chemin ne seront pas suivis. S'il figure au début du nom de chemin, le caractère tilde indique que le chemin d'accès est relatif au répertoire personnel approprié.

Pour plus d'informations sur les modèles de noms de chemins, reportez-vous au manuel Rubriques Système de fichiers intégré de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Remarque :Ce paramètre est compatible Unicode. Pour plus d'informations, reportez-vous à la section sur la prise en charge Unicode dans CL, dans les Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Elément 2 : Inclure ou omettre

Le deuxième élément indique si les noms correspondant au nom de chemin ou à un modèle doivent être inclus ou non dans l'opération. Lors de l'opération permettant de déterminer si un nom correspond à un modèle, on considère toujours que les modèles de noms relatifs se rapportent au répertoire de travail en cours.

*INCLUDE
Les objets correspondant au modèle de nom d'objet doivent être inclus pour déterminer les postes de journal à appliquer, sauf si la valeur *OMIT se substitue à cette valeur.
*OMIT
Les objets correspondant au modèle de nom d'objet ne doivent pas être inclus pour déterminer les postes de journal en cours d'application. Cette valeur se substitue à la valeur *INCLUDE et doit être utilisée pour omettre un sous-ensemble d'un modèle préalablement sélectionné.

Branche du répertoire (SUBTREE)

Indique si les branches de répertoire sont incluses pour déterminer les objets pour lesquels des postes de journal sont appliqués.

Remarque :Ce paramètre n'est admis que si au moins un nom de chemin a été indiqué dans le paramètre OBJPATH.

*NONE
Seuls les objets correspondant aux critères de sélection sont traités. Les objets contenus dans les répertoires sélectionnés ne sont pas traités implicitement.
*ALL
Tous les objets qui correspondent aux critères de sélection sont traités, ainsi que l'ensemble de la branche de chaque répertoire correspondant à ces critères. La branche inclut tous les sous-répertoires et les objets contenus dans ces derniers.

Une fois que la commande a commencé à traiter une branche d'un répertoire spécifique, les objets localisés et traités peuvent être affectés par les opérations qui mettent à jour l'organisation des objets dans l'arborescence de répertoire spécifiée. Cela inclut, sans caractère limitatif, les éléments suivants :

  • Ajout, suppression ou nouvelle dénomination des liens d'objet
  • Montage ou démontage des systèmes de fichiers
  • Mise à jour du répertoire racine effectif pour le processus qui appelle la commande
  • Mise à jour du contenu d'un lien symbolique

Pour traiter la branche du répertoire, le code du système peut augmenter le nombre maximal de descripteurs de fichier, dans la portée du processus, qui peuvent être ouverts lors du traitement. Cette opération est effectuée afin que la commande ne soit pas susceptible d'échouer en raison d'un manque de descripteurs. Cette valeur maximale de portée de processus n'est pas réinitialisée à la fin de la commande.

Masque du nom (PATTERN)

Indique au maximum 20 modèles à utiliser pour inclure ou exclure des objets pour lesquels des postes de journal sont appliqués.

Seule la dernière partie du nom de chemin sera prise en compte pour déterminer si ce nom correspond au modèle. Les délimiteurs de nom de chemin ne sont pas admis dans le modèle de nom. Un astérisque (*) correspond à un nombre quelconque de caractères, alors qu'un point d'interrogation (?) désigne un seul caractère. Si le nom de chemin est qualifié ou contient un modèle, il doit figurer entre apostrophes.

Si le paramètre Modèle de nom n'est pas indiqué, le nom devra correspondre par défaut à tous les modèles.

Pour plus d'informations sur les modèles de noms de chemins, reportez-vous au manuel Rubriques Système de fichiers intégré de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Remarque :Ce paramètre n'est admis que si au moins un nom de chemin a été indiqué dans le paramètre OBJPATH.

Elément 1 : Masque

'*'
Tous les objets correspondant au paramètre OBJPATH en entrée doivent être inclus.
nom-modèle
Indiquez le modèle à utiliser pour inclure ou exclure des objets pour lesquels des postes de journal sont appliqués. Seule la dernière partie du nom de chemin sera prise en compte pour déterminer si ce nom correspond au modèle. Les délimiteurs de nom de chemin ne sont pas admis dans le modèle de nom.

Si le paramètre Modèle de nom n'est pas indiqué, le nom devra correspondre par défaut à tous les modèles.

Pour plus d'informations sur les modèles de noms de chemins, reportez-vous au manuel Rubriques Système de fichiers intégré de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Remarque :Ce paramètre est compatible Unicode. Pour plus d'informations, reportez-vous à la section sur la prise en charge Unicode dans CL, dans les Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Elément 2 : Inclure ou omettre

Le deuxième élément indique si les noms correspondant au modèle doivent être inclus ou non dans l'opération. Lors de l'opération permettant de déterminer si un nom correspond à un modèle, on considère toujours que les modèles de noms relatifs se rapportent au répertoire de travail en cours.

*INCLUDE
Les objets correspondant au modèle de nom d'objet sont inclus dans l'opération, sauf si la valeur *OMIT se substitue à cette valeur.
*OMIT
Les objets correspondant au modèle de nom d'objet ne doivent pas être inclus dans l'opération. Cette valeur se substitue à la valeur *INCLUDE et doit être utilisée pour omettre un sous-ensemble d'un modèle préalablement sélectionné.

Appliquer modif fich logiques (APYLF)

Spécifie si les fichiers logiques vont être inclus dans la liste d'objets auxquels ils sont appliqués.

Remarque :Si OBJ(*ALLJRNOBJ) est spécifié, ce paramètre est ignoré.

*YES
Les modifications journalisées apportées à tous les fichiers logiques construits sur les fichiers physiques spécifiés dans les paramètres FILE ou OBJ sont appliquées. En outre, les modifications journalisées apportées aux fichiers logiques construits exclusivement sur des fonctions de table sont appliquées si leurs bibliothèques sont spécifiées dans le paramètres OBJ.
*NO
Les modifications journalisées apportées aux fichiers logiques ne sont pas appliquées.

Plage de récepteurs de journal (RCVRNG)

Indique le début et la fin de la plage de récepteurs de journal utilisée pour l'application des modifications journalisées. Le système applique les modifications des récepteurs, en commençant par le premier, jusqu'à ce que la fin de la plage de récepteurs soit atteinte.

Remarque :Le nombre maximal de récepteurs pouvant être inclus dans une plage est égal à 2045. Si la plage contient plus de 2045 récepteurs, un message d'erreur est émis et aucune modification n'est appliquée. Vous pouvez modifier les valeurs de ce paramètre de manière à ne pas dépasser la limite admise.

Valeurs uniques

*LASTSAVE
La plage de récepteurs de journal est définie par le système, d'après les informations de sauvegarde des objets concernés par cette opération. Cette valeur n'est correcte que si *LASTSAVE est également spécifié pour le paramètre Numéro de séquence de début (FROMENT) et le paramètre Premier num. séq. maxi (FROMENTLRG).
*CURRENT
Le récepteur de journal en cours lors du démarrage de l'application des modifications journalisées est utilisé.

Elément 1 : Début au récepteur de journal

Qualificatif 1 : Début au récepteur de journal

nom-premier-récepteur
Indiquez le nom et la bibliothèque du premier récepteur de journal (le plus ancien).

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le récepteur de journal est recherché dans la bibliothèque en cours du travail. Si cette dernière n'est pas précisée, QGPL est prise par défaut.
nom-bibliothèque
Indiquez le nom de la bibliothèque contenant le récepteur de journal.

Elément 2 : Fin au récepteur de journal

Qualificatif 1 : Fin au récepteur de journal

*CURRENT
Le récepteur de journal en cours lors du démarrage de l'application des modifications journalisées est utilisé.
nom-dernier-récepteur
Indiquez le nom du dernier récepteur de journal (le plus récent). Si la fin de la chaîne de récepteurs est atteinte sans que le récepteur n'ait été trouvé, aucune modification journalisée n'est appliquée et un message d'arrêt programme est émis.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le récepteur de journal est recherché dans la bibliothèque en cours du travail. Si cette dernière n'est pas précisée, QGPL est prise par défaut.
nom-bibliothèque
Indiquez le nom de la bibliothèque contenant le récepteur de journal.

Premier num. séq. maxi (FROMENTLRG)

Indique le poste utilisé comme point de départ pour l'application des modifications journalisées.

Vous pouvez indiquer une valeur pour le paramètre Numéro de séquence de début (FROMENT) ou le paramètre Premier num. séq. maxi (FROMENTLRG), jamais pour les deux.

*LASTSAVE
L'application des modifications journalisées s'effectue à partir du premier poste de journal existant depuis la dernière sauvegarde de l'objet. Le système détermine, pour tous les objets auxquels doit s'appliquer cette commande, le premier poste à traiter. Cette valeur implique que l'objet vienne juste d'être restauré.

Si la version restaurée de l'objet est issue d'une version sauvegardée à l'aide de la fonction de sauvegarde en mise à jour, le système appliquera les modifications du poste de début de sauvegarde qu'il s'agisse ou non de la dernière sauvegarde de l'objet. Lors de l'utilisation de la fonction de sauvegarde en mise à jour, les informations requises pour l'application des modifications journalisées sont sauvegardées avec l'objet et restaurées. Quand tous les objets spécifiés dans la commande d'application ont été restaurés à partir de sauvegardes ayant utilisé la fonction de sauvegarde en mise à jour, le système peut trouver les points de sauvegarde de ces objets sans devoir rechercher tous les récepteurs de journal. Ceci permet d'améliorer les performances du processus d'application.

Si la version restaurée de l'objet était une version sauvegardée alors qu'il n'était pas utilisé (il s'agit d'une sauvegarde normale), le système vérifie que les informations de chaque objet indiqué, telles que la date et l'heure de la restauration, sont postérieures à la date et à l'heure de la dernière sauvegarde. Il vérifie également que la date et l'heure de sauvegarde de l'objet restauré sur le système sont identiques à celles de sa dernière sauvegarde, comme indiqué dans le journal.

Si les dates et les heures ne correspondent pas, aucun poste n'est appliqué et un message d'interrogation (CPA7050) est envoyé à l'utilisateur ou à l'opérateur système pour lui demander d'annuler l'opération ou de ne pas la prendre en compte. Dans ce dernier cas, le système tente d'exécuter l'opération. En cas d'annulation, l'opération s'arrête et aucun poste de journal n'est appliqué.

Si la fonction de sauvegarde en mise à jour a été utilisée lors de la dernière sauvegarde de l'objet, la copie de sauvegarde de chacun des objets comporte toutes les modifications dans les postes du journal, jusqu'au poste de journal de début de sauvegarde correspondant. Dans ce cas, les modifications sont appliquées à partir du premier poste du journal situé après le poste de début de sauvegarde.

Si la dernière sauvegarde de l'objet a été effectuée alors que celui-ci n'était pas en cours d'utilisation (sauvegarde normale), la copie de sauvegarde de chacun des objets comporte toutes les modifications dans les postes du journal, jusqu'au poste de journal Objet sauvegardé. Dans ce cas, les modifications sont appliquées à partir du premier poste du journal situé après le poste Objet sauvegardé.

Remarque :*LASTSAVE doit être indiqué si des membres de fichiers base de données qui ont été sauvegardés avec *NOCMTBDY comme second élément du paramètre SAVACTWAIT (dans la commande de sauvegarde) se trouvent dans un état où des modifications journalisées doivent être appliquées. S'il n'est pas possible de compléter des transactions partielles à l'aide de modifications journalisées d'application, la commande RMVJRNCHG peut être employée pour retirer ces transactions. S'il n'est possible d'utiliser ni APYJRNCHG, ni RMVJRNCHG, et qu'aucune version du fichier ne peut être restaurée, la commande CHGJRNOBJ (Modifier un objet journalisé) permet, en dernier ressort, d'utiliser le fichier tout en conservant les transactions partielles dans l'objet.

*FIRST
L'application des modifications journalisées s'effectue à partir du premier poste de journal du premier récepteur défini pour cette commande.
numéro-séquence-début
Indiquez le numéro de séquence du premier poste de journal à appliquer. La plage de valeurs admises s'étend de 1 à 18 446 744 073 709 551 600.

Remarque :Lors de la saisie d'un numéro de séquence, évitez d'associer *LASTSAVE au paramètre Plage de récepteurs de journal (RCVRNG) et *LASTRST au paramètre Dern. num. séq. maxi (TOENTLRG).

Dern. num. séq. maxi (TOENTLRG)

Indique le poste utilisé comme point de fin pour l'application des modifications journalisées.

Vous pouvez indiquer une valeur pour le paramètre Numéro de séquence de fin (TOENT) ou le paramètre Dern. num. séq. maxi (TOENTLRG), jamais pour les deux.

*LASTRST
L'application des modifications journalisées se termine par le poste enregistré avant la dernière restauration de l'objet. Le système détermine, pour tous les objets auxquels doit s'appliquer cette commande, le dernier poste à traiter. Le système vérifie que la date et l'heure de la version restaurée de l'objet figurant sur le système correspondent à celles de la dernière restauration de l'objet indiquées dans le journal. Si les dates et les heures ne correspondent pas, aucun poste n'est appliqué et un message d'interrogation (CPA7075) est envoyé à l'utilisateur ou à l'opérateur système pour lui demander d'annuler l'opération ou de ne pas la prendre en compte. Dans ce dernier cas, le système tente d'exécuter l'opération. En cas d'annulation, l'opération s'arrête et aucun poste de journal n'est appliqué.

Si un objet est créé partir de modifications appliquées à un autre, le dernier point d'application du nouvel objet correspond au dernier point le plus important de tous les objets concernés.

Cette valeur n'est correcte que si *LASTSAVE est également spécifié pour le paramètre Numéro de séquence de début (FROMENT) ou pour le paramètre Premier num. séq. maxi (FROMENTLRG). *LASTRST est pris par défaut si aucun des paramètres suivants n'est indiqué :

  • Date et heure de fin (TOTIME),
  • Nom de travail qualifié (TOJOBO),
  • Nom de travail qualifié (TOJOBC).
*LAST
L'application des modifications journalisées s'effectue jusqu'au dernier poste de journal du dernier récepteur de la plage indiquée.
numéro-séquence-fin
Indique le numéro de séquence du dernier poste appliqué. La plage de valeurs admises s'étend de 1 à 18 446 744 073 709 551 600.

Date et heure de fin (TOTIME)

Indique l'heure et la date de la dernière modification journalisée appliquée. Le premier poste rencontré correspondant à l'heure et à la date indiquées ou affecté d'une heure immédiatement postérieure marque la fin de cette opération.

Vous pouvez indiquer l'heure au format 24 heures avec ou sans séparateur :

  • Si vous n'utilisez pas de séparateur d'heure, indiquez une chaîne au format hhmm ou hhmmss (4 ou 6 chiffres), où hh = heures, mm = minutes et ss = secondes.
  • Si vous utilisez un séparateur, indiquez une chaîne de 5 ou 8 chiffres en insérant entre les heures, les minutes et les secondes le séparateur défini pour votre travail. Si vous entrez cette commande à partir de la ligne de commande, placez la chaîne entre apostrophes. Si vous utilisez un séparateur d'heure autre que celui qui a été défini pour votre travail, la commande n'aboutira pas.

Elément 1 : Date de fin

date
Indiquez une date de fin.

Elément 2 : Heure de fin

heure
Indiquez l'heure de fin.

Nom de travail qualifié (TOJOBO)

Indique l'identificateur du travail qui, en ouvrant un objet donné, met fin à l'application des modifications journalisées par cette commande. Le premier poste d'ouverture de travail identifié pour l'un des objets spécifiés constitue le point de fin de tous les objets spécifiés.

Seuls les objets de type *FILE, *DIR ou *STMF comportent des postes de journal associés aux ouvertures des travaux. Le paramètre TOJOBO ne peut être utilisé si l'objet pour lequel des modifications sont mises en oeuvre n'étaient pas des postes d'ouverture et de fermeture d'enregistrement. Pour plus de détails, reportez-vous au paramètre OMTJRNE des commandes STRJRN, STRJRNPF, STRJRNLIB et CHGJRNOBJ.

identificateur-travail
Indiquez le nom du travail, le nom de l'utilisateur et le numéro du travail à utiliser. Vous pouvez également spécifier uniquement le nom du travail ou les noms du travail et de l'utilisateur.
nom-travail
Indiquez le nom du travail.
nom-utilisateur
Indiquez le nom de l'utilisateur du travail.
numéro-travail
Indiquez le numéro de travail attribué par le système.

Nom de travail qualifié (TOJOBC)

Indique l'identificateur du travail qui met fin à l'application des modifications journalisées par cette commande. Le premier poste de fermeture d'objet identifié pour le travail indiqué, pour l'un des objets spécifiés constitue le point de fin de tous les objets spécifiés. Voici les causes possibles de l'interruption :

  • Le travail indiqué ferme un objet spécifié.
  • Le travail indiqué est interrompu.

Seuls les objets de type *FILE, *DIR ou *STMF comportent des postes de journal associés aux fermetures d'objets. Le paramètre TOJOBC ne peut être utilisé si l'objet pour lequel des modifications sont mises en oeuvre n'étaient pas des postes d'ouverture et de fermeture d'enregistrement. Pour plus de détails, reportez-vous au paramètre OMTJRNE des commandes STRJRN, STRJRNPF, STRJRNLIB et CHGJRNOBJ.

identificateur-travail
Indiquez le nom du travail, le nom de l'utilisateur et le numéro du travail à utiliser. Vous pouvez également spécifier uniquement le nom du travail ou les noms du travail et de l'utilisateur.
nom-travail
Indiquez le nom du travail.
nom-utilisateur
Indiquez le nom de l'utilisateur du travail.
numéro-travail
Indiquez le numéro de travail attribué par le système.

Frontière de validation (CMTBDY)

Indique si les frontières de validation sont respectées lorsque les postes de journal à appliquer font partie d'une unité d'oeuvre logique de contrôle de validation (LUW). Pour plus d'informations sur le contrôle de validation, reportez-vous au manuel Rubrique Base de données de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Remarque :Dans la description de ce paramètre, l'option TO sert à décrire le paramètre indiqué, à savoir TOENT, TOTENTLRG, TOTIME, TOJOBO ou TOJOBC.

*YES
Les modifications journalisées sont appliquées du poste indiqué au paramètre FROMENT ou FROMENTLRG au poste spécifié par l'option TO, en tenant compte des frontières de validation.
  • Si le poste de journal indiqué au paramètre FROMENT ou FROMENTLRG se trouve à l'intérieur de l'unité d'oeuvre logique dont il fait partie, un message d'erreur est émis et l'opération n'est pas effectuée.
  • Si le poste de journal indiqué par l'option TO se trouve à l'intérieur de l'unité d'oeuvre logique dont il fait partie, l'opération s'arrête à la frontière de validation précédant ce poste. Un message de diagnostic est envoyé à la fin de l'opération et enregistré dans tout fichier de sortie généré.

Remarque :Si un poste de journal provoque l'arrêt de l'opération avant que le poste indiqué par l'option TO ne soit traité, il se peut que les frontières de validation ne soient pas respectées. En outre, toute opération de niveau objet en attente est soit validée, soit annulée, en fonction du poste type CM ou RB code C inscrit dans le journal pour cette transaction. Il peut en résulter l'application d'une transaction partielle, et les frontières de validation risquent de ne pas être atteintes. Si un poste C/CM ou C/RB est introuvable dans le journal, les opérations de niveau objet sont annulées.

*NO
Les modifications journalisées sont appliquées du poste indiqué au paramètre FROMENT ou FROMENTLRG au poste spécifié par l'option TO, quelles que soient les frontières de validation. Par conséquent, l'opération est effectuée même si un poste de cette plage fait partie d'une unité d'oeuvre logique.

Remarque :Si CMTBDY(*NO) est indiqué alors qu'un objet appliqué a été restauré à partir d'une version sauvegardée contenant des transactions partielles, les modifications en attente pour celles-ci ne seront pas retirées si les transactions ne se réalisent pas dans la plage indiquée. Les modifications en attente d'origine ainsi que toute nouvelle modification pour la transaction partielle seront conservées dans l'objet à la fin de l'opération d'application. L'objet ne sera utilisable que si toutes les transactions en attente s'effectuent dans la plage indiquée.

Remarque :Même si CMTBDY(*NO) est indiqué, le contrôle de validation est employé lors de l'application des opérations de niveau objet dans la base de données. Ceci n'affecte en rien la plage de postes de journal sélectionnée. En outre, toute opération de niveau objet en attente effectuée dans une base de données est soit validée, soit annulée, en fonction du poste type C/CM ou C/RB pour cette transaction. Si aucun poste C/CM ou C/RB n'est trouvé, les modifications sont annulées.

Option (OPTION)

Indique si l'application de modifications de journal doit être précédée d'un contrôle supplémentaire.

*NONE
Tous les contrôles de protection sont réalisés avant l'application de modifications de journal.
*IGNINQMSG
Le message d'interrogation est ignoré. Les messages d'interrogation CPA7050 et CPA7075 ne s'affichent pas même si l'objet en cours d'application n'est pas issu de la dernière sauvegarde ou de la dernière restauration de l'objet. L'opération d'application se poursuit.

Option erreur objet (OBJERROPT)

Indique comment les postes de journal doivent être traités en cas d'erreur.

*CONTINUE
Tout poste de journal d'un objet spécifique qui ne peut être traité entraîne l'arrêt du traitement des postes restants de cet objet. En revanche, le traitement des postes des autres objets se poursuit. Un message de diagnostic indique l'échec du traitement des modifications journalisées de cet objet. S'il y a lieu, la fin prématurée du traitement d'un objet est également ajoutée à tout enregistrement du fichier de sortie.
*END
Quand le traitement échoue pour un poste de journal, il s'arrête pour tous les objets restants.

Sortie (OUTPUT)

Indique si une liste d'informations sur les objets auxquels des modifications ont été appliquées est créée. Les informations peuvent être dirigées vers un fichiers base de données.

*NONE
Aucun fichier base de données n'est créé avec la sortie. L'historique des travaux reçoit les messages correspondant aux 512 premiers objets.
*OUTFILE
Les informations en sortie relative à l'opération d'application seront dirigées vers le fichier base de données indiqué dans le paramètre Fichier recevant la sortie (OUTFILE)

Remarque :Le nom du fichier base de données est obligatoire avec le paramètre Fichier recevant la sortie (OUTFILE) lorsque OUTPUT(*OUTFILE) est indiqué.

Fichier recevant la sortie (OUTFILE)

Indique le fichier base de données vers lequel les informations sont dirigées lorsque *OUTFILE est indiqué au paramètre Sortie (OUTPUT). Si le fichier n'existe pas, cette commande crée un fichier base de données dans la bibliothèque indiquée. Si un fichier est créé, le système utilise QAJRNCHG de QSYS avec le nom de format QJOAPYRM comme modèle.

Qualificatif 1 : Fichier recevant la sortie

nom-fichier-base-de-données
Indiquez le nom du fichier base de données devant recevoir la sortie de la commande. Si le fichier n'existe pas, il est créé dans la bibliothèque indiquée.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le système effectue la recherche dans la bibliothèque en cours du travail. Si cette dernière n'est pas précisée, QGPL est prise par défaut.
nom-bibliothèque
Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.

Options pour membre de sortie (OUTMBR)

Indique le nom du membre de fichier de base données vers lequel est dirigé la sortie lorsque *OUTFILE est précisé à l'invite Sortie (paramètre OUTPUT).

Elément 1 : Membre recevant la sortie

*FIRST
Le premier membre du fichier reçoit la sortie. Si OUTMBR(*FIRST) est indiqué et que le membre n'existe pas, le système en crée un du nom indiqué à l'invite Fichier recevant la sortie (paramètre OUTFILE).
nom
Indiquez le nom du membre de fichier destiné à recevoir la sortie. Si ce membre n'existe pas, il est créé par le système.

Si le membre existe, vous pouvez ajouter des enregistrements à la fin du membre existant ou le mettre à blanc, puis ajouter les enregistrements.

Elément 2 : Remplacement ou ajout enregs

*REPLACE
Les enregistrements existant dans le membre du fichier base de données indiqué sont remplacés par les nouveaux enregistrements.
*ADD
Les nouveaux enregistrements sont ajoutés aux données existant déjà dans le membre de fichier base de données indiqué.

Détail (DETAIL)

Indique le type des informations dirigées vers le fichier de sortie.

*ALL
Le fichier contiendra des informations relatives à la commande et un poste pour chaque objet ayant fait l'objet d'une application dans un journal selon qu'il existait au moment du lancement de la commande d'application ou qu'il a été créé pendant le processus d'application.
*ERR
Le fichier contiendra des informations sur la commande, un poste seulement pour chaque objet dont l'application a réussi. Si le processus d'application s'est terminé prématurément pour un objet, un poste correspondant sera ajouté dans le journal.

Numéro de séquence de début (FROMENT)

Indique le poste utilisé comme point de départ pour l'application des modifications journalisées.

Vous pouvez indiquer une valeur pour le paramètre Numéro de séquence de début (FROMENT) ou le paramètre Premier num. séq. maxi (FROMENTLRG), jamais pour les deux.

*LASTSAVE
L'application des modifications journalisées s'effectue à partir du premier poste de journal existant depuis la dernière sauvegarde de l'objet. Le système détermine, pour tous les objets auxquels doit s'appliquer cette commande, le premier poste à traiter. Cette valeur implique que l'objet vienne juste d'être restauré.

Si la version restaurée de l'objet est issue d'une version sauvegardée à l'aide de la fonction de sauvegarde en mise à jour, le système appliquera les modifications du poste de début de sauvegarde qu'il s'agisse ou non de la dernière sauvegarde de l'objet. Lors de l'utilisation de la fonction de sauvegarde en mise à jour, les informations requises pour l'application des modifications journalisées sont sauvegardées avec l'objet et restaurées. Quand tous les objets spécifiés dans la commande d'application ont été restaurés à partir de sauvegardes ayant utilisé la fonction de sauvegarde en mise à jour, le système peut trouver les points de sauvegarde de ces objets sans devoir rechercher tous les récepteurs de journal. Ceci permet d'améliorer les performances du processus d'application.

Si la version restaurée de l'objet était une version sauvegardée alors qu'il n'était pas utilisé (il s'agit d'une sauvegarde normale), le système vérifie que les informations de chaque objet indiqué, telles que la date et l'heure de la restauration, sont postérieures à la date et à l'heure de la dernière sauvegarde. Il vérifie également que la date et l'heure de sauvegarde de l'objet restauré sur le système sont identiques à celles de sa dernière sauvegarde, comme indiqué dans le journal.

Si les dates et les heures ne correspondent pas, aucun poste n'est appliqué et un message d'interrogation (CPA7050) est envoyé à l'utilisateur ou à l'opérateur système pour lui demander d'annuler l'opération ou de ne pas la prendre en compte. Dans ce dernier cas, le système tente d'exécuter l'opération. En cas d'annulation, l'opération s'arrête et aucun poste de journal n'est appliqué.

Si la fonction de sauvegarde en mise à jour a été utilisée lors de la dernière sauvegarde de l'objet, la copie de sauvegarde de chacun des objets comporte toutes les modifications dans les postes du journal, jusqu'au poste de journal de début de sauvegarde correspondant. Dans ce cas, les modifications sont appliquées à partir du premier poste du journal situé après le poste de début de sauvegarde.

Si la dernière sauvegarde de l'objet a été effectuée alors que celui-ci n'était pas en cours d'utilisation (sauvegarde normale), la copie de sauvegarde de chacun des objets comporte toutes les modifications dans les postes du journal, jusqu'au poste de journal Objet sauvegardé. Dans ce cas, les modifications sont appliquées à partir du premier poste du journal situé après le poste Objet sauvegardé.

Remarque :*LASTSAVE doit être indiqué si des membres de fichiers base de données qui ont été sauvegardés avec *NOCMTBDY comme second élément du paramètre SAVACTWAIT (dans la commande de sauvegarde) se trouvent dans un état où des modifications journalisées doivent être appliquées. S'il n'est pas possible de compléter des transactions partielles à l'aide de modifications journalisées d'application, la commande RMVJRNCHG peut être employée pour retirer ces transactions. S'il n'est possible d'utiliser ni APYJRNCHG, ni RMVJRNCHG, et qu'aucune version du fichier ne peut être restaurée, la commande CHGJRNOBJ (Modifier un objet journalisé) permet, en dernier ressort, d'utiliser le fichier tout en conservant les transactions partielles dans l'objet.

*FIRST
L'application des modifications journalisées s'effectue à partir du premier poste de journal du premier récepteur défini pour cette commande.
numéro-séquence-début
Indiquez le numéro de séquence du premier poste de journal à appliquer. La plage de valeurs admises s'étend de 1 à 9 999 999 999.

Remarque :Lors de la saisie d'un numéro de séquence, évitez d'associer *LASTSAVE au paramètre Plage de récepteurs de journal (RCVRNG) et *LASTRST au paramètre Numéro de séquence de fin (TOENT).

Numéro de séquence de fin (TOENT)

Indique le poste utilisé comme point de fin pour l'application des modifications journalisées.

Vous pouvez indiquer une valeur pour le paramètre Numéro de séquence de fin (TOENT) ou le paramètre Dern. num. séq. maxi (TOENTLRG), jamais pour les deux.

*LASTRST
L'application des modifications journalisées se termine par le poste enregistré avant la dernière restauration de l'objet. Le système détermine, pour tous les objets auxquels doit s'appliquer cette commande, le dernier poste à traiter. Le système vérifie que la date et l'heure de la version restaurée de l'objet figurant sur le système correspondent à celles de la dernière restauration de l'objet indiquées dans le journal. Si les dates et les heures ne correspondent pas, aucun poste n'est appliqué et un message d'interrogation (CPA7075) est envoyé à l'utilisateur ou à l'opérateur système pour lui demander d'annuler l'opération ou de ne pas la prendre en compte. Dans ce dernier cas, le système tente d'exécuter l'opération. En cas d'annulation, l'opération s'arrête et aucun poste de journal n'est appliqué.

Si un objet est créé partir de modifications appliquées à un autre, le dernier point d'application du nouvel objet correspond au dernier point le plus important de tous les objets concernés.

Cette valeur n'est correcte que si *LASTSAVE est également spécifié pour le paramètre Numéro de séquence de début (FROMENT) ou pour le paramètre Premier num. séq. maxi (FROMENTLRG). *LASTRST est pris par défaut si aucun des paramètres suivants n'est indiqué :

  • Date et heure de fin (TOTIME),
  • Nom de travail qualifié (TOJOBO),
  • Nom de travail qualifié (TOJOBC).
*LAST
L'application des modifications journalisées s'effectue jusqu'au dernier poste de journal du dernier récepteur de la plage indiquée.
numéro-séquence-fin
Indique le numéro de séquence du dernier poste appliqué. La plage de valeurs admises s'étend de 1 à 9 999 999 999.

Exemples

Exemple 1 : Application de modifications au premier membre

APYJRNCHG   JRN(FIN/JRNACT)  FILE(FIN/RCVABLE)

Cette commande ordonne au système d'appliquer au premier membre du fichier RCVABLE de la bibliothèque FIN toutes modifications journalisées dans le journal JRNACT de la bibliothèque lors de la dernière sauvegarde du fichier. La plage de récepteurs est fixée par le système. Les modifications sont appliquées en commençant par la première modification journalisée sur la chaîne de récepteurs après la dernière mise à jour du fichier, puis l'opération se poursuit avec tous les postes de journal applicables jusqu'au point de dernière restauration de ce dernier.

Exemple 2 : Application de modifications à un membre

APYJRNCHG   JRN(JRNA)  FILE((LIB2/PAYROLL JAN))
            RCVRNG(RCV22 RCV25)
            FROMENT(*FIRST)  TOENT(*LAST)

Cette commande ordonne au système d'appliquer toutes les modifications journalisées dans le journal JRNA du membre JAN du fichier PAYROLL de la bibliothèque LIB2. Les récepteurs de journal contenant les modifications journalisées résident dans la chaîne de récepteurs comprise du récepteur RCV22 au récepteur RCV25. L'opération commence avec la première modification journalisée de cette chaîne de récepteurs et se termine avec la dernière modification journalisée de cette même chaîne. La liste de recherche des bibliothèques (*LIBL) permet de rechercher le journal JRNA e les récepteurs de journal RCV22 et RCV25.

Exemple 3 : Application de modifications à des objets de système de fichiers intégré

APYJRNCHG   JRN(JRNS/JRNA)
            OBJPATH(('/HRinfo/payroll/Jan*')
                    ('/HRinfo/payroll/JanSummary' *OMIT))
            SUBTREE(*ALL)
            PATTERN(('*.data') ('Temp*.data' *OMIT))
            RCVRNG(*CURRENT)
            FROMENT(20) TOENT(400)

Cette commande ordonne au système d'appliquer des modifications à de objets du système de fichiers intégré. L'opération lit séquentiellement le journal JRNS/JRNA, du poste numéro 20 au poste numéro 400 du récepteur de journal.

  1. Elle traite tous les objets de la sous-arborescence du système de fichiers intégré '/HRinfo/payroll' commençant par 'Jan', mais en omettant l'objet '/HRinfo/payroll/JanSummary'.
  2. Elle traite tous les objets de la sous-arborescence de n'importe quel répertoire correspondant au numéro et dont les noms se terminent par '.data' ; elle omet les noms qui se terminent '.data' mais commencent par les caractères 'Temp'.

Messages d'erreur

Messages *ESCAPE

CPF69A9
Erreur interne détectée, code raison &2.
CPF69AA
Impossible de faire référence à l'objet &1 sauvegardé avec STG(*FREE).
CPF69AB
Valeurs du paramètre RCVRNG incorrects.
CPFA0D4
Une erreur s'est produite dans le système de fichiers. Code erreur &1.
CPF70B7
Appliquez ou enlevez les modifications journalisées qui ne sont pas admises pour le récepteur indiqué.
CPF70CC
Impossible d'effectuer l'opération au-delà du poste &7.
CPF70CD
Impossible d'effectuer l'opération au-delà du poste &7.
CPF70CE
Impossible d'effectuer l'opération au-delà du poste &7.
CPF70EB
Erreur de contrainte référentielle sur le membre &3.
CPF70EC
Erreur de contrainte référentielle. Code raison &9.
CPF70EE
Nombre maximal de chemins d'accès à vecteur encodé pour le membre &3.
CPF7002
Le fichier &1 de la bibliothèque &2 n'est pas un fichier physique.
CPF7003
Poste non journalisé dans &1. Code raison &3.
CPF7006
Membre &3 non trouvé dans le fichier &1 de &2.
CPF7007
Impossible d'allouer membre &3 du fichier &1 de &2.
CPF701B
Le rétablissement par journal d'une opération interrompue a échoué.
CPF704A
Longueur d'enregistrement incorrecte pour le membre &3.
CPF704F
Paramètre TOJOBO ou TOJOBC incompatible avec la plage de valeurs du récepteur.
CPF7041
Poste non trouvé pour le travail &3/&2/&1.
CPF7042
Objet non journalisé ou journalisé dans un journal différent.
CPF7044
L'application ou le retrait de postes journalisés a échoué, code raison &7.
CPF7045
Récepteur de journal &1 de &2 partiellement endommagé.
CPF7046
Clé en double non admise pour le membre &3.
CPF7047
Le membre &3 du fichier &1 de &2 est plein.
CPF7048
Impossible d'effectuer modifications journalisées sur membre &3.
CPF7049
Impossible d'effectuer l'opération au-delà du poste &7.
CPF705A
Echec de l'opération car journal éloigné.
CPF7050
Date de LASTSAVE différente de celle de la version restaurée de l'objet *&4.
CPF7051
Poste de sauvegarde pour l'objet &6 non trouvé.
CPF7052
Erreur de sélection/omission dans fichier logique sur membre &3.
CPF7053
Valeurs du paramètre RCVRNG incorrectes. Code raison &1.
CPF7054
Valeurs des paramètres FROM et TO incorrectes.
CPF7057
*LIBL n'est pas admis avec *ALL, *ALLLIB ou un nom générique.
CPF7058
Application ou retrait de postes journalisés a échoué.
CPF7059
Poste pour &1 non trouvé dans RCVRNG.
CPF7063
Impossible d'utiliser le fichier &1 comme OUTFILE.
CPF7067
Option FROMENTLRG ou FROMENT incorrecte. Violation de la frontière de validation.
CPF7068
Poste nécessaire pour application ou enlèvement non trouvé.
CPF7069
Aucun poste du journal &1 appliqué ou enlevé.
CPF7075
Date de restauration de l'objet *&4 différente de celle indiquée dans le journal.
CPF7076
Poste de restauration de l'objet *&6 non trouvé dans RCVRNG.
CPF7077
Erreur de mappage de clé sur membre &3.
CPF7078
Impossible d'appliquer ou d'enlever les modifications pour membre &3.
CPF70A4
Application de modifications journalisées non admise pour le récepteur indiqué.
CPF70A7
Certains postes n'ont pas été appliqués ou retirés pour au moins un objet.
CPF70A8
Le fichier &1 de la bibliothèque &2 n'est pas utilisable.
CPF70AA
FROMENT(*LASTSAVE) doit être indiqué.
CPF70AB
Récepteur de journal &1 de &2 non trouvé.
CPF70AD
L'application des entrées journalisées a échoué, code raison &7.
CPF9801
Objet &2 non trouvé dans la bibliothèque &3.
CPF9802
Non autorisé à l'objet &2 de &3.
CPF9803
Impossible d'allouer l'objet &2 de la bibliothèque &3.
CPF9809
Accès à la bibliothèque &1 impossible.
CPF9810
Bibliothèque &1 non trouvée.
CPF9812
Fichier &1 non trouvé dans la bibliothèque &2.
CPF9820
Non autorisé à utiliser la bibliothèque &1.
CPF9822
Non autorisé au fichier &1 de &2.
CPF9825
Accès non autorisé à l'unité &1.
CPF9860
Erreur lors du traitement du fichier de sortie.

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