F O N C T I O N J O U R N A L S U R A S / 4 0 0 -------------------------------------------------------------- - Permet à tout moment de conserver la trace de toutes les modifications faites sur la Base de Données. A tout moment il faut pouvoir : - Redémarrer après un incident. - Revenir à une situation antérieure. - Analyser qui a fait quoi. - Minimiser les risques de désynchronisation des fichiers. SYNCHRONISATION FICHIER AU NIVEAU D'UNE TRANSACTION --------------------------------------------------- Prog.1 Lecture Lecture Lecture :M.A.J M.A.J Ecriture F1 F2 F3 : F2 F3 F4 : : : Temps ------------> ! : ! ! : ! ! : ! ! : ! ! : ! ! : ! T1 : T2 T3 : T4 : : :<----Problème si coupure->: |
R E D E M A R R A G E A F R O I D (1) ----------------------------------------------------------------------> ! ! ! ! ! ! ! ! ! ! ! ------(3)--------------------------------> ! ! ! ! ! <--perte d'infos---> ! ! ! ! Point de Point de ! Contrôle Contrôle ! (2) RESTAURATION ! Incident (1) - Traitement normal (2) - Retour au dernier point de contrôle. (3) - Reprise par l'utilisateur. |
R E D E M A R R A G E A C H A U D (1) ----------------------------------------------------------------------> ! ! ! ! ! ! ! ! ------(3)----------> ! ! ! (reconstruction BD) ! ! ! ! ! ! ! ------(4)---------> ! ! ! ! ! ! ! ! ! Point de Point de ! Contrôle Contrôle ! (2) RESTAURATION ! Incident (1) - Traitement normal. (2)+(3) - Synchronisation de la base de données. (4) - L'utilisateur peut reprendre à la dernière transaction. |
L E S I M A G E S A V A N T (1) ----------------------------------------------------------------------> ! ! ! ! ! ! ! ! <-------(2)--------- ! ! ! ! ! ! ! ! ! --------(3)------------------------------> ! ! ! ! ! ! ! ! ! Point de Point de ! Contrôle Contrôle ! ! Incident (1) - Traitement normal. (2) - Recouvrement arrière en utilisant l'image des données avant leur modification. (3) - Reprise par l'utilisateur/situation antérieure |
L E S I M A G E S A P R E S (1) ----------------------------------------------------------------------> ! ! ! ! ! ! ! ! ----(3)------------> ! ! ! ! ! ! ! ! ! ! -----(4)----------> ! ! ! ! ! ! ! ! ! Point de Point de ! Contrôle Contrôle ! (2) RESTAURATION ! Incident (1) - Traitement normal. (2)+(3) - Recouvrement avant en utilisant l'image des données après leur modification. (4) - L'utilisateur peut reprendre à la dernière transaction. |
F O N C T I O N N E M E N T D U J O U R N A L --------------------------------------------------- ** L'utilisation du journal permet au système de garder une trace : - des «images après» (option par défaut). - des «images avant» et «images après» ** Ces images sont conservées dans l'ordre des modifications apportées à la base de données, indépendamment de qui l'utilise. ---> L'ajout dans le journal se fait avant l'écriture de l'enregistrement concerné dans la base de données. ** La fonction journal repose sur l'utilisation de 2 types d'objets. - Le journal (type : *JRN) - Le récepteur de journal (type : *JRNRCV) |
D E S C R I P T I O N G E N E R A L E D U J O U R N A L ---------------------------------------------------------------- - La journalisation est une fonction machine liée à un fichier. - La fonction journal est mise en oeuvre par des commandes CL et le système assure le recouvrement des fichiers. - Les fichiers journalisés sont synchronisés automatiquement avec le journal - Les postes (opérations d'entrée/sortie) sont écrits dans un objet séparé - Seuls les fichiers physiques sont journalisés (par défaut). - Les modifications faites sur un fichier physique par le moyen d'un fichier logique sont prises en compte par le système. |
P R I N C I P E D U J O U R N A L --------------------------------------- S A N S ------- Prog.1 Fichier Application (F1) Prog.2 WRITE ------------> ___________________ READ ___________________ ___________________ |
P R I N C I P E D U J O U R N A L --------------------------------------- A V E C ------- Prog.1 Fichier Application (F1) Prog.2 WRITE ------------> ___________________ READ ! ___________________ ! ___________________ ! ! _____________________ ! <_____________________> .*JRN.... < *JRNRCV (R1) > :fichier:-------------->< _WRITE/F1/prog1/.._ > : F1 : < ___________________ > - Image après :récept.: < ___________________ > OU : R1 : < ___________________ > - Image après :.......: < ___________________ > et image avant <_____________________> |
L ' O B J E T J O U R N A L * J R N ----------------------------------------- ** C'est un objet par lequel est prise en compte toute modification apportée à un ou plusieurs fichiers physiques. ** Il permet de retrouver des informations sur : - Le ou les récepteurs (*JRNRCV) qui lui sont associés. - Le ou les fichiers physiques journalisés par son intermédiaire. ** Il est possible, à tout moment, de détacher un récepteur d'un journal et d'attacher le nouveau, sans interrompre le déroulement normal des opérations (fichiers ouverts, programmes actifs) ** Lorsqu'un nouveau récepteur est attaché à un journal, le précédent est automatiquement détaché. Ceci autorise une segmentation des sauvegardes ** Dès qu'un récepteur est attaché à un journal, il fait partie d'une chaîne de récepteurs connus et gérés par ce journal. |
Fichier Fichier ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ ! / ! _______ / -------> < Journal > <--/ <_______> / Récepteur / Récepteur Récepteur -- R _______________ / _________________ ____________________ _______________ <-------------/ _________________ ____________________ _______________ _________________ ____________________ _______________ _________________ ____________________ Attaché Détaché Détaché D le 12/xx/xx le 12/xx/xx le 11/XX/XX Sauvegardé le 12/XX/XX |
M I S E E N O E U V R E ------------------------------- - Création d'un récepteur. CRTJRNRCV - Création d'un journal. CRTJRN - Démarrage de la journalisation. STRJRNPF Créer un récepteur de journal (CRTJRNRCV) Indiquez vos choix, puis appuyez sur Entrée. Récepteur de journal . . . . . . JRNRCV JRNRCV0001 Bibliothèque . . . . . . . . . *CURLIB ID pool mémoire secondaire . . . ASP 1 Choix unité mémoire . . . . . . UNIT *ANY Seuil d'alerte du récepteur . . THRESHOLD *NONE Texte 'descriptif' . . . . . . . TEXT *BLANK |
C R E A T I O N D ' U N J O U R N A L --------------------------------------------- ** BUT : Créer un journal et ses attributs, et lui attacher un récepteur(s). Le(s) récepteur(s) doivent exister avant la création du journal. Créer un journal (CRTJRN) Indiquez vos choix, puis appuyez sur Entrée. Journal . . . . . . . . . . . . JRN CMDJRN Bibliothèque . . . . . . . . . *CURLIB Récepteur de journal . . . . . . JRNRCV JRNRCV0001 Bibliothèque . . . . . . . . . *LIBL <- 2 Maxi. *LIBL ID pool mémoire secondaire . . . ASP 1 File att msg seuil d'alerte . . MSGQ QSYSOPR Bibliothèque . . . . . . . . . *LIBL Texte 'descriptif' . . . . . . . TEXT *BLANK |
La version 3.10 propose une gestion automatique des récepteurs de journaux. Cette nouveauté semble intéressante si vous utilisez la fonction journal uniquement pour gérer le COMMIT/ROLLBACK avec DB2/400 et non dans un but de sauvegarde. 1/ sur votre récepteur renseignez le paramètre THRESHOLD (seuil d'alerte) Créer un récepteur de journal (CRTJRNRCV) Indiquez vos choix, puis appuyez sur ENTREE. Récepteur de journal . . . . . . JRNRCV Bibliothèque . . . . . . . . . *CURLIB ID pool mémoire secondaire . . . ASP *LIBASP Seuil d'alerte du récepteur . . THRESHOLD *NONE <-- Texte 'descriptif' . . . . . . . TEXT *BLANK Ce paramètre indique quand le changement automatique de récepteur doit avoir lieu (taille maxi en Ko). |
Puis, sur la commande : Créer un journal (CRTJRN) ou (CHGJRN) Indiquez vos choix, puis appuyez sur ENTREE. Journal . . . . . . . . . . . . JRN Bibliothèque . . . . . . . . . *CURLIB Récepteur de journal . . . . . . JRNRCV Bibliothèque . . . . . . . . . *LIBL *LIBL ID pool mémoire secondaire . . . ASP *LIBASP File att msg seuil d'alerte . . MSGQ QSYSOPR Bibliothèque . . . . . . . . . *LIBL Gestion des récepteurs . . . . . MNGRCV *SYSTEM < CHGJRN auto. Suppression des récepteurs . . . DLTRCV *YES < DLTJRNRCV auto Options de taille de récepteur RCVSIZOPT *NONE Texte 'descriptif' . . . . . . . TEXT *BLANK Le système enchaîne alors les commandes suivantes: CHGJRN JRNRCV(*GEN) DLTJRNRCV du récepteur. |
Puis il faut démarrer la journalisation POUR CHAQUE FICHIER. Démarrer journalisation PF (STRJRNPF) Indiquez vos choix, puis appuyez sur Entrée. Fichier physique à journaliser FILE LCDEF Bibliothèque . . . . . . . . . *LIBL + si autres valeurs *LIBL Journal . . . . . . . . . . . . JRN CMDJRN Bibliothèque . . . . . . . . . *LIBL Enregistrer images . . . . . . . IMAGES *AFTER (ATTENTION *BOTH) Postes de journal à omettre . . OMTJRNE *NONE ! ! ! v pour les images avant/après |
Journalisation automatique S'il existe un journal nommé QSQJRN dans votre bibliothèque, la création, PAR SQL uniquement (CREATE TABLE), d'un fichier physique inclus sa journalisation, automatiquement. Depuis la V5R30 , SQL cherche aussi une Data Area : Quand on créé une table, s'il existe une data area QDFTJRN contenant les coordonnées d'un journal, la table est automatiquement journalisée structure de la Data Area: 1-10 : nom de la bibliothèque 11-20 : nom du journal 21-30 : *FILE -> journalisation automatique *NONE -> pas de journalisaiton Cette data area a été modifiée,en V5R40 ,comme suit : elle peux faire maintenant jusqu'à 1980c elle contient (à partir de 21) des couples de 20c, type/opération |
-type admet les valeurs : *FILE pour les fichiers (PF) *DTAARA " les data area *DTAQ " les dtaq *ALL " les 3 types précédents -opération " " : *CREATE journalisation lors de CRTPF *MOVE " lors de MOVOBJ *RESTORE " lors de RSTOBJ *ALLOPR pour les 3 opérations par exemple : 1 2 3 4 5 6 7 ....*....0....*....0....*....0....*....0....*....0....*....0....*....0....* BIBJRN MONJOURNAL *FILE *ALLOPR *DTAARA *CREATE journalisation des fichiers dans tous les cas,des DTAARA lors des créations V6R10 : ------ la journalisation peut se faire pour une bibliothèque entière par STRJRNLIB, cela remplace la Dataarea QDFTJRN et n'impose plus de droits sur le journal au créateur du fichier |
Journalisation et Intégrité référentielle Si vous appliquez une règle d'intégrité référentielle entre deux fichiers (par exemple le client doit exister pour pouvoir saisir des commandes) vous devez indiquer la règle en cas de mise à jour (changement de clé) et en cas de suppression, sur le fichier parent (le fichier client) . ADDPFCST FILE(commandes) TYPE(*REFCST) CST(FK_CLIENTS_COMMANDES) KEY(numcli) <- zone du fichier commande PRNFILE(clients) <- fichier parent --> UPDRULE(*NOACTION) --> DLTRULE(*CASCADE) UPDRULE : *NOACTION contrôle lors du COMMIT, c'est la valeur par défaut. *RESTRICT contrôle immédiat (avant de faire) DLTRULE : les mêmes + *CASCADE , *SETNULL , *SETDFT |
Avec toute valeur autre que *RESTRICT , la journalisation est obligatoire. dans le cas contraire: - l'intégrité sera établie (ADDPFCST fonctionne). - MAIS toutes vos demandes d'ouverture de fichier seront refusées (erreur d' E/S). Exemple avec SQL : create table clients (nocli dec(6, 0) as identity PRIMARY KEY , nomcli char(50) , depcli numeric(2, 0)) Create table commandes (nocde dec(6, 0) as identity PRIMARY KEY , nocli dec(6 , 0) references clients ON DELETE CASCADE , (NOACTION/dft) qtecde dec(7 , 2) , pricde dec(7 , 2)) create table livraisons (noliv DEC(6 , 0) as identity PRIMARY KEY, NOCDE dec(6 , 0) references commandes ON DELETE CASCADE , qteliv dec(7 , 2) , datliv date) , ETC... |
Si la table livraisons n'est pas journalisée, un ordre DELETE sur clients provoque SQL7008, code raison 3: "Table CLIENTS non journalisée" (ce qui n'est pas forcement trés clair) avec CPF523C dans la JOBLOG. il est difficile de définir une contrainte d'intégrité référentielle entre deux fichiers journalisés par des journaux différents. (cas de deux collections SQL) la doc indique que c'est impossible si vous indiquez une règle à une autre valeur que *RESTRICT. en fait DB2 vous laisse faire, mais la suppression s'avère physiquement impossible avec une règle de suppresion *CASCADE par exemple. (erreur d'E/S, sous SQL SQL7008) on constate aussi que si vous travaillez en transaction (STRCMTCTL) il faut avoir validé l'insertion de l'enregistrement père avant de pouvoir insérer le fils, bref c'est bien compliqué ! |
La commande DSPJRN permet d'obtenir des infos sur le contenu d'un récepteur. Afficher un journal (DSPJRN) Indiquez vos choix, puis appuyez sur Entrée. Journal . . . . . . . . . . . . JRN CMDJRN Bibliothèque . . . . . . . . . TP Fichier physique journalisé: FILE Fichier . . . . . . . . . . . *ALLFILE Bibliothèque . . . . . . . . Membre . . . . . . . . . . . . + si autres valeurs Plage de récepteurs de journal: RCVRNG Début au récepteur de journal *CURRENT Bibliothèque . . . . . . . . Fin au récepteur de journal . Bibliothèque . . . . . . . . Numéro de séquence de début . . FROMENT *FIRST Date et heure de début: FROMTIME Date de début . . . . . . . . Heure de début . . . . . . . . A suivre... |
Afficher un journal (DSPJRN) Indiquez vos choix, puis appuyez sur Entrée. Numéro de séquence de fin . . . TOENT *LAST Date et heure de fin: TOTIME Date de fin . . . . . . . . . Heure de fin . . . . . . . . . Nombre de postes de journal . . NBRENT *ALL Codes journal . . . . . . . . . JRNCDE *ALL + si autres valeurs Types de postes de journal . . . ENTTYP *ALL + si autres valeurs Travail . . . . . . . . . . . . JOB *ALL Utilisateur . . . . . . . . . Numéro . . . . . . . . . . . . Programme . . . . . . . . . . . PGM *ALL ID cycle de validation . . . . . CMTCYCID *ALL Longueur donnée du poste . . . . ENTDTALEN 100 Format de sortie . . . . . . . . OUTFMT *CHAR Sortie . . . . . . . . . . . . . OUTPUT * <-*PRINT/*OUTFILE |
Postes du journal Journal . . . . . . : CMDJRN Bibliothèque . . . . : TP Indiquez vos options, puis appuyez sur ENTREE. 5=Afficher le poste complet ######################################################################### Opt Séquence Code Type Objet Biblio Travail Heure 304 C SC DSP36 14:39:23 305 R PT LCDEF TP DSP36 14:39:23 306 C CM DSP36 14:39:23 307 C SC DSP36 14:39:46 5 309 R UB LCDEF TP DSP36 14:39:46 310 R UP LCDEF TP DSP36 14:39:46 311 C CM DSP36 14:39:46 312 C SC DSP36 14:40:12 314 R UB LCDEF TP DSP36 14:40:12 315 R UP LCDEF TP DSP36 14:40:12 316 C CM DSP36 14:40:12 317 C SC DSP36 14:40:21 + F3=Exit F12=Annuler |
Poste complet du journal Journal . . . . . . : CMDJRN Bibliothèque . . . . : TP Séquence . . . . . . : 309 Code . . . . . . . . : R - Opération sur enregistrement spécifique Type . . . . . . . . : UB - Mise à jour, image avant Objet . . . . . . . : LCDEF Bibliothèque . . . . : TP Membre . . . . . . . : LCDEF Indicateur . . . . . : 1 Date . . . . . . . . : xx/xx/xx Heure . . . . . . . : 14:39:46 Nombre/Rang . . . . : 50 Programme . . . . . : CMDFOUR2 Travail . . . . . . . . . . . . . : 121673/QSECOFR/DSP36 ID du cycle de validation . . . . : 307 Données du poste . . . . . . . . . : *...+..1......+....2....+....3....+....4....+....5 ' ^ Ģ& ? r A3 - ' Appuyez sur ENTREE pour continuer. F3=Exit F11=Format hexadécimal F12=Annuler F14=Poste précédent |
Poste complet du journal Journal . . . . . . : CMDJRN Bibliothèque . . . . : TP Séquence . . . . . . : 309 Code . . . . . . . . : R - Opération sur enregistrement spécifique Type . . . . . . . . : UB - Mise à jour, image avant Objet . . . . . . . : LCDEF Bibliothèque . . . . : TP Membre . . . . . . . : LCDEF Indicateur . . . . . : 1 Date . . . . . . . . : xx/xx/xx Heure . . . . . . . : 14:39:46 Nombre/Rang . . . . : 50 Programme . . . . . : CMDFOUR2 Travail . . . . . . . . . . . . . : 121673/QSECOFR/DSP36 ID du cycle de validation . . . . : 307 Données du poste . . . . . . . . . : * . . . + . . . . 1 . . . . + . . . . 2 . . . . + '15163F015F0078500F010F006F01990FC1F340404040404040' '40000003600F' # Appuyez sur ENTREE pour continuer. F3=Exit F11=Format alphanumérique F12=Annuler F14=Poste précédent |
Pour voir les entrées spécifiques à une période -> utilisez les paramètres FROMTIME() / TOTIME() pensez à mettre les bons récepteurs ou *CURCHAIN dans RCVRNG() Pour voir les entrées spécifiques à un fichier -> renseignez le paramètre FILE sur la commande DSPJRN 1/ si le fichier n'existe pas précisez bibliothèque, fichier ET membre le système "scan" le (les) récepteur(s) pour trouver vos entrées 2/ si le fichier existe, le système lui attribut un ID unique cet identifiant est récupéré dans le fichier existant, seules les entrées correspondant à cette version du fichier sont affichées (même niveau de format, même date de création, ...) |
Pour voir les entrées correspondant à une autre "version" -récupérez l'identifiant avec un DSPJRN sans le paramètre FILE DSPJRN, 5 sur le poste concerné, F10 Détails d'un poste de journal Journal . . . . . . : QSQJRN Bibliothèque . . . . : BDVIN2 Séquence . . . . . . : 75178 Code . . . . . . . . : R - Opération sur enregistrement spécifique Type . . . . . . . . : UB - Mise à jour, image avant ID journal . . . . . : X'18400024D2AD02B10063' <- -utilisez la valeur trouvée (héxa) dans le paramètre OBJID DSPJRN JRN(BDVIN2/QSQJRN) RCVRNG(*CURCHAIN) ENTTYP(UB) OBJJID(X'18400024D2AD02B10063') |
LISTE DES ZONES DU FICHIER PHYSIQUE CREE PAR DSPJRN *OUTFILE Nom Nom Nom Nom Fichier Biblio. Format Zone Lg. Décim. Texte descriptif OUTJRN QGPL QJORDJE JOENTL 5 0 Longueur du poste " " " JOSEQN 10 0 N° de séquence " " " JOCODE 1 Code journal " " " JOENTT 2 Type du poste " " " JODATE 6 Date du poste " " " JOTIME 6 0 Heure du poste " " " JOJOB 10 Nom du travail " " " JOUSER 10 Utilisateur " " " JONBR 6 0 N° du travail " " " JOPGM 10 Nom du programme " " " JOOBJ 10 Nom de l'objet " " " JOLIB 10 Bibliothèque " " " JOMBR 10 Nom du membre " " " JOCTRR 10 0 Rang de l'enreg.mod " " " JOFLAG 1 Flag:0 ou 1 " " " JOCCID 10 0 Id cycle commit " " " JORES 8 non utilisé " " " JOESD 100 Données du poste |
+------------------------------------------------------------------------+ | Principaux codes journaux | +------------------------------------------------------------------------+ | | | | A | Accounting (comptabilité système) | +----------+-------------------------------------------------------------+ | | | | B | Système de fichier intégré , IFS. | +----------+-------------------------------------------------------------+ | | | | C | Commitment Control | +----------+-------------------------------------------------------------+ | | | | D | Opération sur un fichier base de données (Create Table...)| +----------+-------------------------------------------------------------+ | | | | E | Opération sur une Data Area | +----------+-------------------------------------------------------------+ | | | | F | Opération sur un membre | +----------+-------------------------------------------------------------+ |
+------------------------------------------------------------------------+ | | | | I | Opération interne | +----------+-------------------------------------------------------------+ | | | | J | Action sur un journal ou un récepteur | +----------+-------------------------------------------------------------+ | | | | L | Gestion de licence | +----------+-------------------------------------------------------------+ | | | | M | Gestion de réseau (TCP/IP & SNMP) | +----------+-------------------------------------------------------------+ | | | | O | Opération sur un objet (non implémenté aujourd'hui) | +----------+-------------------------------------------------------------+ | | | | Q | Opération sur une Data Queue | +----------+-------------------------------------------------------------+ | | | | R | Opération sur un enregsitrement base de données | +----------+-------------------------------------------------------------+ |
+------------------------------------------------------------------------+ | | Pour le CODE R les principaux types sont : | | | ------------------------------------------ | | | BR - Image avant d'un enregistrement suite à une opération | | | d'annulation | | | DL - Enregistrement supprimé d'un membre de fichier physique| | | DR - Enregistrement supprimé pour effectuer une opération de| | | remise à l'état initial | | | IL - Incrémentation de limite d'enregistrement | | | PT - Enregistrement ajouté à un membre de fichier physique | | | PX - Enregistrement ajouté directement à un membre | | | UB - Image avant d'un enregistrement mis à jour dans un mbr | | | UP - Image après d'un enregistrement mis à jour dans un mbr | | | UR - Image après d'un enregistrement suite à une opération | | | d'annulation | +------------------------------------------------------------------------+ | S | Mail serveur Framework (MSF & SMTP) | +----------+-------------------------------------------------------------+ | T | Audit système | +----------+-------------------------------------------------------------+ | U | Entrée Utilisateur (SNDJRNE) | +----------+-------------------------------------------------------------+ |
REPRISE. En cas de problème, (scratch disque) (récupérer journal et récepteur par RCLSTG, s'ils sont dans un ASP) Restaurer journal et récepteur EN PREMIER. De façon à ce que les fichier soient automatiquement re-journalisés à la restauration. (il est d'ailleur recommandé de créer une bibliothèque à part pour tout ce qui touche à la fonction journal, ce qui vous autorisera RSTLIB) # Puis,vos DATA par Restaurer bibliothèque (RSTLIB) Indiquez vos choix, puis appuyez sur ENTREE. Biblio des objets sauvegardés . SAVLIB fichiers Unité . . . . . . . . . . . . . DEV ########## + si autres valeurs F3=Exit F4=Invite F5=Réafficher F10=Autres paramètres F12=Annuler F13=Mode d'emploi invite F24=Autres touches |
Et, Appliquer modifs journalisées (APYJRNCHG) Indiquez vos choix, puis appuyez sur ENTREE. Journal . . . . . . . . . . . . JRN CMDJRN Bibliothèque . . . . . . . . . *LIBL Fichier physique journalisé: FILE Fichier physique journalisé . *ALL Bibliothèque . . . . . . . . *LIBL Membre . . . . . . . . . . . . *FIRST + si autres valeurs Plage de récepteurs de journal: RCVRNG Début au récepteur de journal *LASTSAVE Bibliothèque . . . . . . . . Fin au récepteur de journal . Bibliothèque . . . . . . . . Numéro de séquence de début . . FROMENT *LASTSAVE Numéro de séquence de fin . . . TOENT *LASTRST ######## A suivre... F3=Exit F4=Invite F5=Réafficher F12=Annuler F13=Mode d'emploi invite F24=Autres touches |
Appliquer modifs journalisées (APYJRNCHG) Indiquez vos choix, puis appuyez sur ENTREE. Date et heure de fin: TOTIME Date de fin . . . . . . . . . Heure de fin . . . . . . . . . Nom de travail qualifié . . . . TOJOBO Utilisateur . . . . . . . . . Numéro . . . . . . . . . . . . Nom de travail qualifié . . . . TOJOBC Utilisateur . . . . . . . . . Numéro . . . . . . . . . . . . Frontière de validation . . . . CMTBDY *YES remarquez TOJOBO/TOJOBC : jusqu'à ouverture/fermeture par un JOB CMTBDY : tenir compte des frontières de validation Fin F3=Exit F4=Invite F5=Réafficher F12=Annuler F13=Mode d'emploi invite F24=Autres touches |
SI vous souhaitez revenir en arrière, Vous utiliserez la commande RMVJRNCHG. ATTENTION, . à la cohérence de l'ensemble. . vos fichiers doivent être journalisés, images avant et après . il est conseillé de définir le premier n° de séquence (le plus récent) et le dernier (le plus ancien) préalablement avec la commande DSPJRN. . il n'est PAS POSSIBLE de faire une sélection des modifs à annuler, hormis le début et la fin de recouvrement arrière. |
Enlever modifs journalisées (RMVJRNCHG) Indiquez vos choix, puis appuyez sur ENTREE. Journal . . . . . . . . . . . . JRN CMDJRN Bibliothèque . . . . . . . . . *LIBL Nom du fichier journalisé: FILE Fichier physique journalisé . ? ? ? Bibliothèque . . . . . . . . *LIBL Membre . . . . . . . . . . . . *FIRST + si autres valeurs + <------ Plage de récepteurs de journal: RCVRNG Début au récepteur de journal *CURRENT Bibliothèque . . . . . . . . Fin au récepteur de journal . Bibliothèque . . . . . . . . Numéro de séquence de début . . FROMENT *LAST <------ Numéro de séquence de fin . . . TOENT *FIRST <------ ########## A suivre... F3=Exit F4=Invite F5=Réafficher F12=Annuler F13=Mode d'emploi invite F24=Autres touches |
Enlever modifs journalisées (RMVJRNCHG) Indiquez vos choix, puis appuyez sur ENTREE. Nom de travail qualifié . . . . TOJOBO Utilisateur . . . . . . . . . Numéro . . . . . . . . . . . . Frontière de validation . . . . CMTBDY *YES (mêmes remarques) Fin F3=Exit F4=Invite F5=Réafficher F12=Annuler F13=Mode d'emploi invite F24=Autres touches |
Autres commandes liées à la fonction journal : WRKJRN pour voir les journaux de votre système WRKJRNA pour voir les attributs d'un journal : F13 vous affiche les fichiers journalisés F14 vous affiche les index journalisés F15 vous affiche la chaine des récepteurs CMPJRNIMG, pour imprimer les enregistrements modifiés (les images avant/après sont imprimées l'une sous l'autre) RTVJRNE pour lire le contenu d'un journal en CL RCVJRNE pour recevoir en temps réel les postes du journal ENDJRNPF , DLTJRN , DLTJRNRCV, pour défaire... |