Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

AS/400 et message CPF4328


Sujet :

AS/400

  1. #1
    Membre à l'essai
    AS/400 et message CPF4328
    J'ai un message CPF4328. Aidez-moi svp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Message . . . . : Membre FILE1 non journalisé dans *N.
    
    Cause . . . . . : Le membre FILE1 du fichier FILE1, bibliothèque
    LIB1, n'est pas journalisé dans *N, bibliothèque *N, pour la définition de
    validation QILE.
    Le journal indiqué correspond à celui de la définition de validation QILE.
    Si la valeur *N a été indiquée pour le journal, le fichier n'est pas
    journalisé. S'il s'agit d'un fichier logique, les fichiers physiques qui en
    dépendent peuvent ne pas être journalisés dans le même journal,
    contrairement à ce qui est demandé dans le contrôle de validation.

  2. #2
    Membre éclairé
    Tu as utilisé une fonction (SQL ou autre), qui nécessite que le fichier en question soit journalisé, or il ne l'est pas.
    Soit tu modifies le code pour ne pas utiliser la journalisation (compilation option COMMIT), soit tu journalises ton fichier (STRJRNPF).
    Personnellement, je pense que tous les fichiers devraient être journalisés. Aujourd'hui, avoir des traces de toutes les modifications, et avoir la possibilité de faire marche arrière c'est, à mon avis, essentiel.

  3. #3
    Membre du Club
    Bonjour,

    Tout à fait en accord avec m4k-Hurrican, on devrait systématiquement journaliser les tables (les fichiers physiques) de production. Mais on est sur l'héritage des premières versions de l'IBM i (pardon de l'OS/400), où la puissance des processeurs et l'espace disque étaient limités ce qui nous conduisait à ignorer la journalisation.

    Pour désactiver ton erreur, si tu travailles en RPG, tu peux :
    • mettre dans les premières lignes de ton programme, avant tout ordre SQL, EXEC SQL SET OPTION COMMIT = *NONE ;
    • ou compiler avec COMMIT(*NONE)


    Dominique

  4. #4
    Expert éminent
    Sinon à la fin d'ordre de mise à jour tu ajoutes "with nc" (dans la requête).

###raw>template_hook.ano_emploi###