Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUM ORACLE F.A.Q ORACLE TUTORIELS ORACLE TUTORIELS SQL SCRIPTS SQL LIVRES ORACLE QUIZ BLOG ORACLE


Installation de l'Oracle Transparent Gateway 10g pour DRDA

19 février 2006
MAJ: 17 juin 2006

Par Fabien Celaia (Fadace)

Sommaire

Introduction

Il est parfois nécessaire de récupérer des données hétérogènes depuis une instance Oracle. Pour ce faire, Oracle (Software) propose le produit Oracle Transparent Gateway (OTG).

Celui-ci permet d'émuler une table Oracle lorsque celle-ci est en fait une table distante hétérogène.

Il existe pour diverses passerelles de ce type:

  • Oracle Transparent Gateway pour Sybase Adaptive Server Enterprise
  • Oracle Transparent Gateway pour Microsoft SQL Server
  • Oracle Transparent Gateway pour Teradata
  • Oracle procedural Gateway pour APPC
  • Oracle Transparent Gateway pour DRDA (TCP et SNA)
  • Oracle Procedural Gateway pour WebSphere MQ
  • Oracle Procedural Gateway pour VisualWorkbench for WebSphere MQ
Elles réagissent toutes selon le même principe.

Nous allons ici détailler l'installation et la configuration de Oracle Transparent Gateway pour DRDA via TCP, car elle a l'avantage de coupler les problèmes liés à un système d'exploitation particuliers (l'OS400) et ceux de Net8 (pour l'accès via TCP-IP).

Cas particulier de l'I5-OS

Dans le cas tout à fait particulier de l'AS400, à noter qu'une autre gateway Oracle existe.
Contraitement aux OTG citées ci-dessus, elle se place en sous-système sur la partie OS400.
Elle est envisageable dans 3 cas de figures.

  • Lorsque les instances Oracle devant s'y connecter sont très nombreuses et que les instances AS400 sont peu nombreuses
  • Lorsque de la puissance est disponible sur l'AS400 et pas sur les instances Oracle
  • Lorsque les administrateurs AS400 sont plus brillants que les DBA... on peut rêver...

Installation du logiciel

Il n'est pas obligatoire d'installer la passerelle sur le même Oracle_Home que celui de l'instance Oracle qui va l'utiliser. Néanmoins, pour de raisons de configuration du listener, nous y gagnerons en simplification. Suivons donc l'installation ci-dessous.

Configuration

Déterminez les noms que vous allez utiliser

Nom de cet exempleVos paramètresDescription
ORCL   Instance base Oracle
C:\Oracle\O10R2
%ORACLE_HOME%
  Oracle Home
MaMachine   Nom du host surlequel s'installe la passerelle
MONAS400.Mondomaine.ch   Nom réseau de l'AS400
DRDA   Login sur l'AS400, et librairie associée
DRDAPWD   Mot de passe sur l'AS400

Passerelle

Dans le répertoire %ORACLE_HOME%\tg4drda\admin, créez un fichier initMONAS400.ora contenant les informations suivantes:

#####################
# Paramètres HS
#####################

FDS_CLASS=TG4DRDA_DB2MVS
HS_COMMIT_POIMT_STRENGTH=255
HS_NLS_DATE_FORMAT=YYYY-MM-DD
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISOISO8859P15
HS_RPC_FETCH_REBLOCKING=off
HS_RPC_FETCH_SIZE=32768
HS_RPC_FETCH_ROWS=20

#####################
# Paramètres DRDA
#####################
DRDA_CONNECT_PARM=MONAS400.Mondomaine.ch:446
DRDA_REMOTE_DB_NAME=MONAS400
DRDA_PACKAGE_COLLID=DRDA
DRDA_PACKAGE_NAME=G2DRSQL
DRDA_PACKAGE_CONSTOCKEN=A92617CB3FE54701
DRDA_READ_ONLY=FALSE
DRDA_RECOVERY_USERID=DRDA
DRDA_RECOVERY_PASSWORD=DRDAPWD
DRDA_ISOLATION_LEVEL=CS

Assurez-vous bien que le port DRDA est le 446 (par défaut) et qu'il est ouvert pour votre machine si une pare-feu est présent.

Réseau

Toutes les modifications suivantes sont à faire dans votre répertoire %ORACLE_HOME%\network\admin

Ajoutez une entrée pour la passerelle dans votre fichier tnsnames.ora:

MONAS400 = (DESCRIPTION=
      (ADDRESS= 
      	(PROTOCOL=TCP)
      	(HOST=MaMachine)
      	(PORT = 1521))
    (CONNECT_DATA=(SID=MonAS400))
      (HS=)
    )

Ajoutez dans la SID_LIST de votre fichier listener.ora la lign suivante, puis redémarrez ledit listener:

(SID_DESC= (SID_NAME=MONAS400)(ORACLE_HOME = C:\oracle\O10R2) (PROGRAM = g4drsrv)

AS400

Créez l'utilisateur en vous connectant en tant que SYSADM (ou faites-le faire par votre administrateur AS400)

CRTUSRPRF USRPRF(DRDA) PASSWORD(******) INLMNU(*SIGNOFF) TEXT('Utilisateur OTG')                                                                          

Créez 2 librairies

CRTLIB LIB(DRDA) TYPE(*PROD) TEXT('Librairie pour OTG')  
CRTLIB LIB(OTGDB2) TYPE(*PROD) TEXT('Librairie pour métamodèle OTG')  

Créez la table de commit à 2 phases via STRSQL

CREATE TABLE DRDA/ORACLE2PC
     (LTRANID  VARCHAR(22),
      GTRANID  VARCHAR(128) FOR BIT DATA,
      STATE    VARCHAR(16),
      ADVICE   VARCHAR(8),
      TRANCMT  VARCHAR(254),
      FAILTIME DATE,
      DBUSER   VARCHAR(18),
      OSTERM   VARCHAR(254),
      OSPID    VARCHAR(254),
      OSPROGID VARCHAR(254))

Jouez aussi le script %ORACLE_HOME%\tg4drda\install\as400\g4ddvw52.sql (pour la V5R2 ou V5R3) si vous souhaitez bénéficier de métadonnées, mais ceci est optionnel.

Initialisation Oracle

Connectez-vous en tant que system à votre base Oracle et exécutez les 2 commandes suivantes:

SQL> CREATE PUBLIC DATABASE LINK MONAS400 CONNECT TO DRDA IDENTIFIED BY ****** USING 'MONAS400' ;
SQL> exec GTW$_BIND_PKG@MONAS400  ;

La première commande crée le lien (nommé MONAS400), le 2ème génère les packages nécessaires dans la librairie DRDA de l'AS400.

Dans le cas ou, contrairement à notre exemple, le database link n'est pas similaire au host, veiller à avoir un GLOBAL_NAMES=FALSE, via la commande

SQL> ALTER SYSTEM|SESSION SET GLOBAL_NAMES=FALSE ;

Test

Toujours connecté à votre base de données, exécutez l'ordre suivant.

SQL> SELECT count(*) FROM qsys2.systables@MONAS400 ;

Si cet ordre vous retourne un nombre plutôt qu'une erreur... c'est gagné !

Copyright © Fadace. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsable bénévole de la rubrique Oracle : Vincent Rogier - Contacter par EMail :
Vos questions techniques : forum d'entraide Oracle - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.