DDM = Data Distributed Management . DDM permet de "voir" un fichier situé sur un AS/400 distant comme s'il était local (une sorte de fichier virtuel). le lien APPC doit être établi (LAN, SDLC, X25) ######################### ! ############################# # # ! # # # AS1 CRTDDMF # ! # AS2 # # clientp1 # ! # # # # ! # ______________ # # ........... # ! # <______________> # # : : # ! # ! ! # # : : # V # ! ! # # : : # ------ # ! clientp1 ! # # : : # Z # ! ! # # :.........: # ------- # !____________! # # # # # ######################### ############################# |
la commande est simple : CRTDDMF DMMF(clientp1) nom local RMTFILE(clientp1) nom sur le site distant RMTLOCNAME(AS2) nom du lieu distant (paramètre RMTLOCNAME sur l'unité APPC) TEXT('fichier DDM -> clientp1 sur AS2') le fichier doit simplement exister (PF ou LF) sur AS2 un programme P1 qui a été compilé avec clientp1 sur AS2 peut maintenant être transféré sur AS1 et s'éxecuter SANS RECOMPILATION ! il faut créer un fichier DDM par fichier Base de données. (DDM ne fait pas de différence entre physique et logique) |
Exemple: si vous avez un autre programme P2 utilisant un fichier logique clientl2, il faut créer un fichier DDM pour clientl2. Un certain nombre de commandes savent utiliser les fichiers DDM CPYF d'un fichier DDM vers un fichier local fait un transfert Tous les compilateurs peuvent utiliser un fichier DDM en externe : ils vont aller générer la structure dans le programme à partir de celle du fichier distant. les commandes DSPFD, DSPFFD peuvent vous montrer les attributs locaux - nom du fichier distant, lieu éloigné, ... avec SYSTEM(*LCL) ou vous montrer les informations du fichier distant avec SYSTEM(*RMT) |
Pour SQL (Interactif ou dans les programmes) utilisez plutot DRDA D R D A = Distributed Relationnel Database Architecture. Mise en oeuvre sur AS/400 en utilisant APPC : Tout d'abord définir le connexion avec le système distant. - ligne - contrôleur - unité (DEV APPC) cette dernière définie le nom de lieu local et le nom de lieu distant (RMTLOCNAME) Ensuite définir la base de donnée locale RMTLOCNAME = *LOCAL et la ou les base(s) de données éloignée(s). Par la commande ADDRBDDIRE (WRKRDBDIRE pour voir la liste) |
Ajouter poste répertoire RDB (ADDRDBDIRE) Indiquez vos choix, puis appuyez sur ENTREE. Base de données relationnelle . RDB AUTRERDB Lieu éloigné . . . . . . . . . . RMTLOCNAME AUTREAS Texte . . . . . . . . . . . . . TEXT Base de données xxxxxxxxx ############################################### # # # Le lien entre Remote Data Base et moyen # # d'accès(unité APPC) est normalement fait # # avec le paramètre RMTLOCNAME. # # # ############################################### Fin F3=Exit F4=Invite F5=Réafficher F10=Autres paramètres F12=Annuler F13=Mode d'emploi invite F24=Autres touches |
Ajouter poste répertoire RDB (ADDRDBDIRE) Indiquez vos choix, puis appuyez sur ENTREE. Base de données relationnelle . RDB AUTRERDB Lieu éloigné . . . . . . . . . . RMTLOCNAME AUTREAS Texte . . . . . . . . . . . . . TEXT *BLANK Pilote demandeur d application: ARDPGM Programme . . . . . . . . . . *DRDA Bibliothèque . . . . . . . . *LIBL ############### Autres paramètres # # # Mais il # Unité: DEV # est # Description d'unité APPC . . . *LOC # possible # Lieu local . . . . . . . . . . . LCLLOCNAME *LOC # de préciser # ID éloigné du réseau . . . . . . RMTNETID *LOC # l'unité # Mode . . . . . . . . . . . . . . MODE *NETATR # et/ou de # Programme de transaction . . . . TNSPGM *DRDA # renseigner # # ces para- # # mètres. # ############### Fin |
Entrée d'instructions SQL ===> CONNECT ############################## # # # Il est possible maintenant # # d'utiliser une base de # # données éloignée,comme # # si elle était locale # # après l'ordre CONNECT. # # valide sous : # # - SQL interactif # # - QM (query manager) # # - pgm XXXSQL (RPG,CBL..) # ############################## Fin F3=Exit F4=Invite F6=Insérer ligne F9=Rappel F10=Copier ligne F12=Annuler F13=Services F24=Autres touches |
Définition d'une instruction CONNECT Indiquez vos choix, puis appuyez sur ENTREE. Connexion . . . . . . . . . . . 1 1=Eloignée 2=Locale(RESET) 3=Etat TO base de données relationnelle AUTRERDB Nom USER . . . . . . . . . . . . . . ID utilisateur USING . . . . . . . . . . . . . ############ Mot de passe ####################################################################### # L'option 1 permet de se connecter à une base éloignée. # # 2 permet de revenir à la base locale # # 3 (en pgm) permet de recevoir un code statut. # # # ####################################################################### F3=Exit F5=Réafficher F12=Annuler F21=Instruction |
Pour les programmes contenant des ordres SQL, DDM ne peut pas être utilisé. Il faut absolument paraméter DRDA, et ensuite : 1/ passer l'ordre SQL CONNECT à l'intérieur du programme pour pouvoir exécuter le programme, il faut qu'il existe sur la machine cible (celle possédant les fichiers Base de Données) un objet SQL Package pour le créer, passer sur la machine cliente (là ou est le programme) CRTSQLPKG PGM(mon-pgm) RBD(AUTRERDB) OU 2/ compiler le programme avec RDB(AUTRERDB) le SQL package est créé sur la machine distante en même temps que le pgm local. |
Sécurité en SNA : le programme sur le système source s'éxécute dans un job déja actif, donc avec le profil en cours (celui qui a lancé le programme). la question se pose avec le système cible. le programme DDM va être activé par une entrée de communication ADDCMNE par défaut dans le sous système QCMN. 1/ soit vous n'utilisez pas le même profil sur les deux machines (SECURELOC(*NO) sur l'unité APPC) et le programme s'éxécute avec un profl par défaut (QUSER) vous devez donc autoriser QUSER aux fichiers base de données. cela semble assez difficile à mettre en place (peu de sécurité) |
2/ soit vous indiquez SECURELOC(*YES) sur l'unité APPC. dans ce contexte, les profils doivent exister (les mêmes) sur les deux machines. le système envoi alors le profil en cours et un flag (un AVI) indiquant que ce profil a déja été controlé. le programme DDM s'éxecute sous ce profil sur la machine cible. c'est l'option la plus "sécurisée" - elle vous oblige à dupliquer les profils utilisant DDM. - mais elle vous permet de donner des autorisations significatives aussi bien sur la machine source que sur la machine cible. Si vous travaillez en APPN, les unités APPC sont automatiquement créés, vous devez donc pré-renseigner ces paramètres dans une liste de configuration (objet *CFGL, à créer par CRTCFGL *APPNRMT, s'il le faut) |
cde WRKCFGL : Gestion des listes de configuration # # Système: S44R7480 Afficher à partir de Caractères de début Indiquez vos options, puis appuyez sur ENTREE. 1=Créer 2=Modifier 3=Copier 4=Supprimer 5=Afficher 6=Imprimer 7=Rebaptiser 8=Gérer postes Opt Liste Type Texte QAPPNLCL *APPNLCL Liste du lieu local 2 QAPPNRMT *APPNRMT Liste des lieux distants # # Fin Paramètres ou commande ===> F3=Exit F4=Invite F5=Réafficher F9=Rappel F12=Annuler |
Modifier liste configuration S44xxxxx # # Liste de configuration : QAPPNRMT ######## Type de liste de # ICI # configuration . . . . : *APPNRMT ######## Texte . . . . . . . . . : Liste des lieux distants ! Indiquez vos modifications, puis appuyez sur ENTREE. ! ! -----------------------------Lieux éloignés APPN---------------------!-------- ID Point de ID rés V Lieu éloigné Lieu contrôle point de Mot de passe Lieu éloigné réseau local éloigné contrôle du lieu protégé AUTREAS APPN S44xxxxx APPN *YES *NETATR *NETATR *NETATR *NO *NETATR *NETATR *NETATR *NO *NETATR *NETATR *NETATR *NO *NETATR *NETATR *NETATR *NO *NETATR *NETATR *NETATR *NO *NETATR *NETATR *NETATR *NO # A suivre... F3=Exit F11=Informations de session F12=Annuler F17=Début F18=Fin |