Accueil du site > Les articles > Problème de dépendance de fichiers
Version à imprimer Enregistrer au format PDF

Problème de dépendance de fichiers

mercredi 15 septembre 2004, par Didier Encinas Visites  2632 Première mise en ligne le mardi 4 novembre 2003.

Vos applications fonctionnent bizarrement ces derniers temps ?

Les modifications des programmes ne changent rien aux résultats ?

Un Query tout bête voit des données différentes de celles utilisées par vos programmes ?

Pas de doute : vous avez un problème de dépendance de fichiers.


Rappel

La commande DSPDBR vous permet, entre autre chose, de visualiser les dépendances d’un fichier physique.

Elle vous indique la liste des fichiers logiques rattachés ainsi que leur emplacement.

Si les bibliothèques du fichier physique et celles des fichiers logiques ne correspondent pas, vous avez probablement des soucis à vous faire.

Et pour les trouver ces erreurs cela va être long, même en automatisant la tâche.

Heureusement IBM a pensé à vous

Mais ne vous l’a pas dit !

Le fichier QADBFDEP placé dans QSYS contient les infos qui nous intéressent, à savoir :

Pos  Zone        Long D Description                        
 1  DBFFIL        10   Nom du fichier
 2  DBFLIB        10   Nom de la bibliothèque
 3  DBFFDP        10   Nom du fichier dépendant
 4  DBFLDP        10   Nom de la bibliothèque du fichier dépendant
 5  DBFTDP         1   Type de dépendance : D-data,V-view,I-indirec
 6  DBFRDP        10   Nom de format du fichier dépendant
 7  DBFLB2       128 v Nom de la bibliothèque sur 128 c variable

Un simple QUERY ou une requête SQL cherchant les différences entre DBFLIB et DBFLDP vous listera tous les écarts de bibliothèque.

Il ne vous reste plus qu’à analyser les résultats, et le cas échéant, intervenir sur la localisation de vos fichiers :

Bon courage ...

ATTENTION : Ces différences sont parfois volontaires (ie : certains fichiers systèmes).

Ne touchez à rien sans vous informer avant !

Exemple de résultat de Query :

LIBRARY     FILE        DEPENDENT   DEPENDENT   DEP   DEPENDENT   LIBRARY
NAME        NAME        FILE        FILE        TYPE  FORMAT      NAME    
                       NAME        LIB               NAME                
QSYS        QADBCCST    SYSCSTCOL   QSYS2        D    SYSCSTCOL   QSYS    
QSYS        QADBCCST    SYSKEYCST   QSYS2        D    SYSKEYCST   QSYS    
QSYS        QADBFCST    SYSCHKCST   QSYS2        D    SYSCHKCST   QSYS    
QSYS        QADBFCST    SYSCST      QSYS2        D    SYSCST      QSYS    
QSYS        QADBFCST    SYSCSTDEP   QSYS2        D    SYSCSTDEP   QSYS    
QSYS        QADBFCST    SYSKEYCST   QSYS2        D    SYSKEYCST   QSYS    
QSYS        QADBFCST    SYSREFCST   QSYS2        D    SYSREFCST   QSYS    
QSYS        QADBFDEP    SYSINDEXES  QSYS2        D    SYSINDEXES  QSYS    
QSYS        QADBFDEP    SYSVIEWDEP  QSYS2        D    SYSVIEWDEP  QSYS    
QSYS        QADBIFLD    QAZDCOLM    QIWS         D    SYSCOL      QSYS    
QSYS        QADBIFLD    QAZDGCOL    QIWS         D    SYSGCO      QSYS    
QSYS        QADBIFLD    SYSCOLUMNS  QSYS2        D    SYSCOLUMNS  QSYS    
QSYS        QADBIFLD    SYSCSTCOL   QSYS2        D    SYSCSTCOL   QSYS    
QSYS        QADBIFLD    SYSKEYCST   QSYS2        D    SYSKEYCST   QSYS    
QSYS        QADBIFLD    SYSKEYS     QSYS2        D    SYSKEYS     QSYS    
QSYS        QADBKFLD    SYSKEYS     QSYS2        D    SYSKEYS     QSYS    
QSYS        QADBPKG     SYSPACKAGE  QSYS2        D    SYSPACKAGE  QSYS
QSYS        QADBXREF    QAZDGTB1    QIWS         D    SYSTB1      QSYS    
QSYS        QADBXREF    QAZDGTB4    QIWS         D    SYSTB4      QSYS    
QSYS        QADBXREF    QAZDGTB5    QIWS         D    SYSTB5      QSYS    
QSYS        QADBXREF    QAZDGTB7    QIWS         D    SYSTB7      QSYS    
QSYS        QADBXREF    QAZDTBL1    QIWS         D    SYSTB1      QSYS    
QSYS        QADBXREF    QAZDTBL2    QIWS         D    SYSTB2      QSYS    
QSYS        QADBXREF    QAZDTBL3    QIWS         D    SYSTB3      QSYS    
QSYS        QADBXREF    QAZDTBL4    QIWS         D    SYSTB4      QSYS    
QSYS        QADBXREF    QAZDTBL5    QIWS         D    SYSTB5      QSYS    
QSYS        QADBXREF    QAZDTBL6    QIWS         D    SYSTB6      QSYS    
QSYS        QADBXREF    QAZDTBL7    QIWS         D    SYSTB7      QSYS    
QSYS        QADBXREF    SYSCST      QSYS2        D    SYSCST      QSYS    
QSYS        QADBXREF    SYSCSTDEP   QSYS2        D    SYSCSTDEP   QSYS    
QSYS        QADBXREF    SYSINDEXES  QSYS2        D    SYSINDEXES  QSYS    
QSYS        QADBXREF    SYSINDEXES  QSYS2        D    SYSINDEXES  QSYS    
QSYS        QADBXREF    SYSTABLES   QSYS2        D    SYSTABLES   QSYS    
QSYS        QADBXREF    SYSVIEWDEP  QSYS2        D    SYSVIEWDEP  QSYS
QSYS        QADBXREF    SYSVIEWDEP  QSYS2        D    SYSVIEWDEP  QSYS    
QSYS        QADBXREF    SYSVIEWS    QSYS2        D    SYSVIEWS    QSYS

P.-S.

Une recherche régulière dans QADBFDEP et les problèmes de dépendances seront du passé pour vous.

Allez pour vous aider encore un peu plus, je vous offre la requête SQL :

SELECT DBFFIL, DBFLIB, DBFFDP, DBFLDP, DBFRDP FROM QADBFDEP WHERE DBFLIB <> DBFLDP