Vous le savez SNA ne sera pas éternel, et il vous faudra trouver des solutions pour le remplacer, ces solutions sont en plus souvent plus performantes
Exemple : en remplaçant les fichiers de /qdls par des fichiers de l’ifs natif !
Il y a plusieurs solutions:
Vous pouvez par exemple analyser vos sources, cette méthode pose 2 problèmes.
- Vous allez analyser de nombreux sources qui ne sont plus utilisés
- A contrario, vous n’avez pas forcément tous les sources
Voici une méthode plus efficace et facile à mettre en œuvre, elle est basé sur la traçabilité des commandes !
1) Démarrer le contrôle d’audit
Vous devez démarrer l’audit de journal si ce n’est pas encore le cas
la valeur QAUDCTL doit avoir *OBJAUD
2) Démarrer l’analyse des commandes
Le but est de trouvé les traitements qui utilisent les commandes du monde SNA
et ensuite de mettre une solution de remplacement.
Pour avoir une idée précise, vous devez laisser tourner au moins 15 jours …
PGM
/* démarrer l’analyse sur les commandes SNA * /
CHGOBJAUD OBJ(SNDDST) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(SAVRSTLIB) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(SAVRSTOBJ) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(SAVRST) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(SAVRSTCHG) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(SNDNETF) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(SNDNETMSG) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(SNDNETSPLF) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(CPYTOPCD) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(CPYFRMPCD) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(STRPASTHR) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(ADDDIRE) OBJTYPE(*CMD) OBJAUD(*ALL)
CHGOBJAUD OBJ(QY2FTML) OBJTYPE(*PGM) OBJAUD(*ALL)
ENDPGM
3) Analyse des commandes
DSPJRN JRN(QAUDJRN) JRNCDE((T)) ENTTYP(CD)
Si voulez avoir un fichier mieux présenté pour les fichiers type CD
CRTDUPOBJ OBJ(QASYCDJ5)
FROMLIB(QSYS)
OBJTYPE(*FILE) TOLIB(GTOOLS) NEWOBJ(ANALYSE) CST(*NO)
TRG(*NO)
puis
DSPJRN JRN(QAUDJRN)
JRNCDE((T))
ENTTYP(CD)
OUTPUT(*OUTFILE) OUTFILFMT(TYPE5)
OUTFILE(GTOOLS/ANALYSE)
OUTMBR(*FIRST *ADD)
4) Arrêt de l’audit
PGM
/* arrêt de l’analyse sur les commandes SNA */
CHGOBJAUD OBJ(SNDDST) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(SAVRSTLIB) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(SAVRSTOBJ) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(SAVRST) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(SAVRSTCHG) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(SNDNETF) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(SNDNETMSG) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(SNDNETSPLF) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(CPYTOPCD) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(CPYFRMPCD) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(STRPASTHR) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(ADDDIRE) OBJTYPE(*CMD) OBJAUD(*NONE)
CHGOBJAUD OBJ(QY2FTML) OBJTYPE(*PGM) OBJAUD(*NONE)
ENDPGM
5) Supprimer les commandes incriminées
Les solutions de remplacement
SNDDST par SNDMSG ou SNDSMTPEMM
SAVRSTLIB en V7R4 par un passage en IP ou solution à base de FTP
SAVRSTOBJ »
SAVRST »
SAVRSTCHG »
SNDNETF par SNDSMTPEMM ou solution à base de FTP
SNDNETMSG par SNDMSG ou SNDSMTPEMM
CPYTOPCD par CPYTOSTMSF ou CPYTOIMPF
CPYFRMPCD par CPYFRMSTMF ou CPYFRMIMPF
STRPASTHR par TELNET
ADDDIRE par ADDSMTPLE pour les envois de mail
CALL QY2FTML par FTP ou SAVRSTOBJ en IP
Et les cas particuliers
Vous n’avez pas les sources, par exemple sur un progiciel de production
Il faudra faire preuve de plus d’imagination, par exemple une commande avec le même nom et des paramètres identiques à la commande d’origine placées avant dans la liste de bibliothèque, et qui remplace l’action souhaitée par une action similaire à déterminer !
80 % des problèmes sont sur le SNDDST