SQL et DRDA.

BoTTom |    Changer de couleur
 
  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
 
 
 


|    Changer de couleur
 CMDRDB                          Commandes RDB 
 
 Choisissez une des options : 
 
  Commandes 
     1. Ajouter poste répertoire RDB                       >>> ADDRDBDIRE 
     2. Modifier poste répertoire RDB                          CHGRDBDIRE 
     3. Afficher postes répertoire RDB                         DSPRDBDIRE 
     4. Arrêter une demande RDB                                ENDRDBRQS 
     5. Enlever poste répertoire RDB                           RMVRDBDIRE 
     6. Gérer postes répertoire RDB                            WRKRDBDIRE 
 
   Menus des commandes associées 
     7. Commandes base de données                              CMDDB 
 
 
 
                                                                       Fin 
 Option ou commande 
 ===> 1
                                                                                
 F3=Exit   F4=Invite   F9=Rappel   F12=Annuler   F16=Menu général 


|    Changer de couleur
                    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 moyens    # 
    #  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                       


|    Changer de couleur
                    Ajouter poste répertoire RDB (ADDRDBDIRE)  
 
 Indiquez vos choix, puis appuyez sur ENTREE. 
 
 Base de données relationnelle  . RDB             ######################### 
 Lieu éloigné . . . . . . . . . . RMTLOCNAME      ######## 
 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 


|    Changer de couleur
 
 
 
 Le nouveau paramètre ARDPGM (V3R10) permet de définir le pilote, c'est à
  dire le programme sachant dialoguer avec cette base s'il ne s'agit pas
  d'une base IBM.
 
 
 ainsi ORACLE livre un produit permettant de considérer comme une base DRDA
  une base ORACLE sur machine UNIX, reliée à l'AS/400 par TCP/IP
 
 
 
 c'est exactement le principe du driver (pilote) ODBC, d'ailleur il y a
  interaction complète entre DRDA et ODBC :
 
 
  si vous avez un micro connecté à l'AS/400 avec une source de donnée
   ODBC configurée, cette source de donnée peut vous servir de "passerelle"
   pour manipuler toutes les bases DRDA connues de l'AS/400.
 
 


|    Changer de couleur
                           Entrée d'instructions SQL        
 
 Saisissez l'instruction SQL, puis appuyez sur Entrée.                          
 ===> 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 


|    Changer de couleur
                      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                          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 


|    Changer de couleur
                      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                          Nom 
 
   USER . . . . . . . . . . . . . .                          ID utilisateur 
 
   USING  . . . . . . . . . . . . .    ############           Mot de passe 
 
   ####################################################################### 
   # Pour l'option 1 vous pouvez indiquer un utilisateur désignant sous  #  
   #  quel profil le pgm distant va être exécuté (ctl des autorisations) # 
   #  la notion de mot de passe peut être facultative.                   # 
   #     en résumé :                                                      # 
   ####################################################################### 
 
 F3=Exit   F5=Réafficher   F12=Annuler   F21=Instruction 


|    Changer de couleur
                      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                          Nom 
 
   USER . . . . . . . . . . . . . .                          ID utilisateur 
 
   USING  . . . . . . . . . . . . .    ############           Mot de passe 
 
   ####################################################################### 
   # Si le lieu distant a indiqué sur l'entrée ADDCMNE                   # 
   #  un profil par défaut -> la notion de profil est facultative.       # 
   #  pas de profil/défaut -> vous devez indiquer un profil.             # 
   #                                                                     # 
   ####################################################################### 
 
 F3=Exit   F5=Réafficher   F12=Annuler   F21=Instruction 


|    Changer de couleur
                      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                          Nom 
 
   USER . . . . . . . . . . . . . .                          ID utilisateur 
 
   USING  . . . . . . . . . . . . .    ############           Mot de passe 
 
   ####################################################################### 
   # Si le lieu distant a indiqué sur l'unité APPC                       # 
   #  SECURE(*YES) votre site est considére comme "sérieux" et le pgm    # 
   # distant s'exécutera sous votre profil sans indiquer de mot de passe # 
   # Sinon un mot de passe est obligatoire,si vous indiquez un profil.   # 
   ####################################################################### 
 
 F3=Exit   F5=Réafficher   F12=Annuler   F21=Instruction 


|    Changer de couleur
 
 SQL/400 et Two Phases Commit :
 
 - SQL/400 supporte la validation à deux phases et a été
    modifié en conséquence.
 
   + nouveau paramètre CRTSQLxxx RDBCNNMTH (RDB connexion method) admet :
 
     *DUW (dft) Distributed Unit of Work = validation à deux phases
 
     *RUW       Remote Unit of Work      = validation simple (comme V2R30)
 
   > Si vous indiquez *RUW (la doc parle de connexion type 1)
 
     Comme avant vous ne pouvez être connecté qu'à une seule base à la fois.
 
     Vous devez terminer la transaction avant de changer de base.
 
   > Si vous indiquez *DUW, (connexion type 2)
 
     Vous pouvez vous connecter à plusieurs bases(même syntaxe pour CONNECT)
 


|    Changer de couleur
 
 Il existe alors trois nouveaux ordres (valides uniquement en type 2)
 
 SET CONNECTION nom-du-serveur
 
 utilisation:
   EXEC SQL CONNECT TO as1
            (manipulation des données sur as1)
   EXEC SQL CONNECT TO as2
            (manipulation des données sur as2, as1 est toujours connecté)
   EXEC SQL SET CONNECTION as1
            (retour sur as1)
 
 RELEASE ---nom-serveur---
          |-CURRENT----|
          |ALL/ALL SQL-|
 
 Libère le serveur indiqué, les ressources sont encore verrouillées.
  (ce serveur ne fera pas partie de la prochaine transaction)
 
 DISCONNECT (même syntaxe que RELEASE) déconnecte le serveur après un COMMIT
 


|    Changer de couleur
 
 DDM et DRDA sont disponibles sur TCP/IP, depuis la V4R20.
 
        Validation à UNE phase uniquement (en V4) !
 
 
 pour se connecter à un serveur DRDA en IP il y a deux possibilités :
 
 1/ envoyer le profil (USER) seulement
 
    (comme SECURITY(SAME) en APPC)
 
 
 2/ envoyer profil (USER) et mot de passe (USING)
 
    (comme SECURITY(PGM) en APPC)
 
 
    le mot de passe pouvant être indiqué à chaque utilisation
 
    ou pré-enregistré (et caché) sur le client
 


|    Changer de couleur
 
 
 Pour envoyer le profil uniquement
 
 
 sur le client 
 
 CONNECT to nom-drda      (utilisation du profil en cours)
 
 
 
 CONNECT TO nom-drda USER nom-profil
 
 
 sur le serveur 
 
 
 CHGDDMTCPA AUTOSTART(*YES)   PWDRQD(*NO)
 
             la valeur par défaut est PWDRDQ(*YES).
 
 


|    Changer de couleur
 
 Pour envoyer le profil et le mot de passe
 
 Solution 1. 
 
 sur le client 
 
 CONNECT to nom-drda USER nom-profil USING mot-de-passe
 
 
 Solution 2. 
 
 sur le client 
 
 on enregistre à l'avance le mot de passe associé à ce profil
 
 a/ pour avoir le droit de stocker des mots de passe
 
               CHGSYSVAL QRETSVRSEC  '1' (c'est 0 par défaut)
 
 b/ on enregistre le profil et son mot de passe
 


|    Changer de couleur
 
 par :
 
       ADDSVRAUTE
 
                  USRPRF(profil-local
                    ou   *CURRENT    )
 
                  SERVER(nom-DRDA)
 
                  USERID(profil à envoyer)
                    ou   *USRPRF         )
 
                  PASSWORD(mot de passe à envoyer)
 
 
 vous trouverez également les commandes
 
   CHGSVRAUTE
et
   RMVSVRAUTE
 


|    Changer de couleur
 
  le serveur DDM/DRDA est représenté par deux principaux jobs :
 
     QRWTLSTN le listner (à l'écoute sur un le port TCP 446)
 
     QRWTSRVR le job serveur (pré-start job) QRMTSRVR
 
 
 
  la commande ADDRDBDIRE est modifiée en conséquence :
 
 
     ADDRDBDIRE    RDB(nom-drda)
 
                   RMTLOCNAME(accepte maintenant les noms longs
                              comme S44xxxxx.ENTREPRISE.COM)
 
                   TYPE(*IP | *SNA)
 
                   PORT(*DRDA)        [= 446]
 
 


|    Changer de couleur
 
Procédures cataloguées & DRDA : [STORED PROCEDURES]
 
 
Rappel :
 
 SQL permet maintenant de demander l'exécution d'un programme sur un serveur
  distant (normalement devant réaliser une action sur la base de ce serveur)
 
 
la Syntaxwe est CALL procedure (paramètres)
 
 
 PROCEDURES CATALOGUEES et DRDA :
 
 la procédure est recherchée et invoquée sur la base de données DRDA
  à laquelle vous êtes connecté (tout simplement), quelque soit le
  protocole utilisé.
 
 
 
 


|    Changer de couleur
 Les pgms xxxSQL peuvent utiliser l'ordre CONNECT, mais il est aussi
  possible de définir une fois pour toute avec quelle base de données
  éloignée ils doivent travailler.
 
Il faut renseigner le paramètre RDB de la cde CRTxxxSQL.
 
Si la ligne est ouverte,votre système va créer en plus du pgm, un plan
 d'accès (SQL PACKAGE) sur le système distant.
Si la connexion n'est pas ouverte,il faudra passer la cde CRTSQLPKG
 quand la connexion sera établie, afin de préparer la requête (et donc
 améliorer les performances) sur le site distant.
 
                         Créer un module SQL (CRTSQLPKG)       
 
 Programme  . . . . . . . . . . . PGM             ########## 
   Bibliothèque . . . . . . . . .                  *LIBL      
 Base de données relationnelle  . RDB            *PGM              
 Utilisateur RDB  . . . . . . . . USER           *CURRENT   
 Mot de passe utilisateur RDB . . PASSWORD        ########## 
 Collection par défaut  . . . . . DFTRDBCOL      *PGM       
 Texte 'descriptif' . . . . . . . TEXT           *PGMTXT
                    





©AF400