Le clonage d'OeBS

Administration OeBS : Clonage d'environnement

Retour au sommaire ERP

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Le clonage

Bonjour, cet article a pour objectif de décrire en français les étapes nécessaires à un clonage sans douleur d'un environnement Oracle Application 11i n-tiers.
Le clonage permet de restaurer OeBS sur un autre serveur ou avec une configuration différente (nom d'instance, numéro de port, déplacement de fichiers, etc...).

1. Présentation

1.1. Pour les curieux

Vous êtes arrivés sur cet article au détour de vos recherches sur Developpez.com mais n'avez aucune idée de quoi il retourne ? Ne partez pas, cette partie est faite pour vous.

OeBS signifie Oracle eBusiness Suite, soit l'ERP livré par Oracle. C'est une application, dite légère, permettant aux grosses entreprises de prendre en charge la comptabilité générale (GL/AP/AR), les commandes (OE), la gestion des stocks (INV) ou encore la gestion commerciale (CRM) entre autres. SAP est le principal concurrent de OeBS ainsi que PeopleSoft qui n'en est plus puisque Oracle l'a racheté (de même que JDEdwards).
OeBS est composé de 3 éléments (dite architecture 3-tiers) : base de données, application et poste client (navigateur Web).
Architecture Oracle Application (OeBS)

1.2. L'environnement

Pour l'article j'ai travaillé sur l'environnement suivant :

Module Version Patch (OeBS)
Oracle RDBMS 9.2.0.5 N/A
Oracle Application 11i 11.5.8 N/A
AD AD.I.2 4337683
ADX ADX.F 3453499
Oracle Universal Installer oui 2.2 4017155
JDK 1.3.1 N/A
JRE 1.3 N/A
Zip 2.3 N/A
Unzip 5.42 N/A
Perl 5.005_03 N/A



Le module ADX a été patché au niveau ADX.F pour bénéficier de l'utilitaire AutoConfig (cf Annexe A). Le module AD a été patché en AD.I.2 (AD.F requis mais AD.I.2 est un pré-requis à de nouveau patch récent notamment OAM.H que je vous conseille).
Les utilisateurs AIX sont oracle pour la base de donnée et applmgr pour l'application. Le mot de passe de APPS est APPSPWD. Le nom du serveur hébergeant la base est DBSVR et pour l'application c'est GTSSVR (pour les GTS), APPSVR (pour Forms et Reports) et DISCOSVR (pour Discoverer).
La base de données se nomme ORCL. De fait, je nommerai le CONTEXT_NAME ainsi : ORCL_GTSSRV pour le coté applicatif (sachant que ce sera en réalité ORCL_DISCOSRV et ORCL_APPSVR selon le noeud) ou ORCL_DBSVR pour la base de données
Enfin, nous imaginerons un environnement source (celui que l'on clone) en mono-tier (une serveur pour toutes les parties de OeBS) sur le serveur MONOSVR avec la base ORCLSRC.

Attention : pour éviter quelques bugs, je vous conseille fortement d'éviter les caractères spéciaux dans le nom des serveurs, notamment les underscores (_) qui pourraient apparaître dans l'URL de l'application.

2. Le clonage d'Oracle Application

2.1. Pré-clone

Pour mettre en place le clonage, il convient de programmer le pré-clone quotidiennement ou au minimum après chaque patch, livraison de programmes ou modification de la base de données.
Bien entendu, ces actions sont menés sur l'environnement source.
Bien qu'il soit possible de ne cloner que la base ou l'application, j'attire votre attention sur les risques de perte de cohérence si depuis la dernière copie des patches ou livraisons impactant chacunes des parties ont été installé. En effet, si vous copiez la base qui contient une version de package ou vue différente qu'auparavant, des écrans peuvent ne plus fonctionner par exemple. Je vous conseille donc d'éviter les clonages partiels.

2.1.a. Noeud applicatif

Connectez-vous avec l'utilisateur oracle sur MONOSVR.

Pré-clone applicatif
Sélectionnez

cd $ORACLE_HOME/appsutil/scripts/ORCLSRC_MONOSVR
perl adpreclone.pl appsTier

2.1.b. Noeud Base de données

Connectez vous avec l'utilisateur oracle sur MONOSVR.

Pré-clone RDBMS
Sélectionnez

cd $ORACLE_HOME/appsutil/scripts/ORCLSRC_MONOSVR
perl adpreclone.pl dbTier

2.2. Copie des fichiers

2.2.a. Noeud applicatif

L'application n'a pas besoin d'être arrêtée mais c'est quand même conseillé pour éviter "d'oublier" des fichiers log ou out.
La liste minimale des répertoires à copier est la suivante :

  • $APPL_TOP
  • $OA_HTML
  • $OA_JAVA
  • $OA_JRE_TOP
  • $COMMON_TOP/util
  • $COMMON_TOP/clone
  • $COMMON_TOP/_pages (s'il existe)
  • $ORACLE_HOME
  • $IAS_ORACLE_HOME

2.2.b. Noeud Base de données

  • Arrêtez la base ou passer les tablespaces en mode BEGIN BACKUP.
  • Copiez tous les fichiers de la base (dbf, redo, controlfiles, ...)
  • Copiez les binaires Oracle : le répertoire $ORACLE_HOME de l'utilisateur oracle
  • Copiez les fichiers d'archive si la base est en mode ARCHIVELOG

2.2.c. Pour finir...

Après avoir vérifié que tous les fichiers nécessaires sont bien copiés sur la cible, vous pouvez redémarrer l'environnement source.
Réinstallez oui 2.2 (ou version supérieure) sur les noeuds cibles (RDBMS et applicatif). Cela consiste à dézipper le patch 4017155 dans $ORACLE_HOME ou $IAS_ORACLE_HOME sur DBSVR et GTSSVR.

N'oubliez pas de changer le owner et le group des fichiers copiés sur la cible. Inspirez-vous de la source pour retrouver les bons paramétres à indiquer; par exemple oracle:dba et applmgr:dba pour chacun des types.

2.3. Configurer les noeuds

Ici, je considère que les utilisateurs sont correctement paramétré : .profile créé, fichiers /etc/oraInst.loc et /etc/oratab créés et fichiers copiés avec les bonnes appartenances (user et groupe).

2.3.a. Noeud Base de données

2.3.a.a. Préparation

Avant de commencer, il convient d'effectuer quelques tâches préliminaires.

 
Sélectionnez

export ORACLE_HOME=/app/oracle/9.2.0.5
mv $ORACLE_HOME/appsutil/clone/jre/bin  $ORACLE_HOME/appsutil/clone/bin.bak
mv $ORACLE_HOME/appsutil/clone/jre/lib $ORACLE_HOME/appsutil/clone/lib.bak
ln -s $ORACLE_HOME/appsutil/clone/jre/jre/lib $ORACLE_HOME/appsutil/clone/jre/lib
ln -s $ORACLE_HOME/appsutil/clone/jre/jre/bin $ORACLE_HOME/appsutil/clone/jre/bin
export PATH=$ORACLE_HOME/Apache/perl/bin:$PATH:/usr/vac/bin
export PERL5LIB=$ORACLE_HOME/Apache/perl/lib/5.00503:$ORACLE_HOME/Apache/perl/lib/site_perl/5.005
cp $ORACLE_HOME/jdbc/lib/classes111.zip $ORACLE_HOME/appsutil/clone/jlib/classes111.zip

2.3.a.b. Base en mode ARCHIVELOG

Attention, lorsque la base est sauvée en mode ARCHIVELOG, il est plus prudent de la démarrer une fois manuellement. Vous trouverez de l'aide dans les tutoriels Sauvegarde et restauration de données sous Oracle 9i et Pense-bête du DBA Oracle.

2.3.a.c. Clonage

Les variables d'environnement sont paramétrées, les liens sont reconstruits et la base est arrêtée. Dans le répertoire $ORACLE_HOME/appsutil/clone/bin, lancez : perl adcfgclone.pl dbTier.

 
Sélectionnez

(1)	Enter the APPS password [APPS]:
APPSPWD
 
First Creating a new context file for the cloned system.
The program is going to ask you for information about the new system:
Provide the values required for creation of the new Database Context file.
(2)	Do you want to use a virtual hostname for the target node (y/n) [n] ?: n
(3)	Target instance is a Real Application Cluster (RAC) instance (y/n) [n]: n
(4)	Target System database name [SRCORCL]:ORCL 
(5)	Target system domain name [developpez.com]:
(6)	Target system RDBMS ORACLE_HOME directory [/app/oracle/9.2.0.5]: 
(7)	Target system utl_file accessible directories list [/usr/tmp]: 
(8)	Number of DATA_TOP's on the target system [4]:
(9)	Target system DATA_TOP 1 [/SRCORCLlogs/oracle/SRCORCLdata]: /ORCLlogs/oracle/ORCLdata]
(10)	Target system DATA_TOP 2 [/SRCORCLdata2/oracle/SRCORCLdata]: /ORCLdata2/oracle/ORCLdata
(11)	Target system DATA_TOP 3 [/SRCORCLsys/oracle/SRCORCLdata]: /ORCLsys/oracle/ORCLdata
(12)	Target system DATA_TOP 4 [/SRCORCLdata/oracle/SRCORCLdata]: /ORCLdata/oracle/ORCLdata
(13)	Do you want to preserve the Display set to SRCSVR:1.0 (y/n) [y] ?:n
(14)	Target system Display [SRCSVR:0.0]:DBSVR:1.0  
(15)	Do you want to preserve the port values from the source system on the target system (y/n) [y] ?:  y
Database port is 1522

(1) : saisissez le mot de passe de l'utilisateur APPS
(2) et (3): Est-ce que vous utilisez un nom de serveur virtuel et est-ce que la base de données est en RAC.
(4) : c'est ici que vous choisissez le nom de la base de données. Pour l'exemple, la source est SRCORCL et la cible sera ORCL.
(5) : le nom de domaine permet de définir le domaine utilisé par la base de données
(6) : il s'agit du répertoire d'installation d'Oracle (le ORACLE_HOME de la base de données)
(7) : ici, on renseigne le contenu de utl_file, notamment pour générer les fichiers log et out qui seront transférés sur le GTSSVR
(8) : la cible peut contenir un nombre de répertoires de données différents de la source (on peut imaginer un seul file system pour le développement par exemple)
(9), (10), (11) et (12) : chacun des répertoires de la base est redéfini
(13) : on peut conserver le DISPLAY si le serveur et le terminal d'affichage du serveur X ne changent pas
(14) : dans l'exemple, le serveur est modifié.
(15) : il est possible de changer le "pool". Ce numéro est ajouté au valeur par défaut des ports de la base. Ainsi si le pool est 1 alors le listener sera paramétré pour utiliser le port 1522 (1521 par défaut plus 1).

2.3.a.d. Post-clonage

A ce stade, votre noeud base de données est configuré : la base et le listener sont lancés, et le fichier $ORACLE_HOME/appsutil/ORCL_DBSVR.xml est créé.
Sauvegardez le fichier XML et, si nécessaire, modifier les variables s_db_ldlib, s_db_libpath et s_db_shlib pour s'assurer que $ORACLE_HOME/lib32 est en début de path, et les variables s_ecx_log_dir et s_bis_debug_log_dir pour vérifier que le chemin des fichiers temporaires est bien correct.
Pensez également à vérifier le fichier de configuration .profile notamment pour charger le fichier $ORACLE_HOME/ORCL_DBSVR.ora qui contient les variables d'environnement.
Enfin, une connexion à la base n'est pas inutile pour vérifier que tout est OK.

 
Sélectionnez

sqlplus apps/appspwd
select * from v$instance;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION           STARTUP_ STATUS       PAR    THREAD# ARCHIVE LOG_SWITCH_
----------------- -------- ------------ --- ---------- ------- -----------
LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST
---------- --- ----------------- ------------------ ---------
              1 ORCL
DBSVR
9.2.0.5.0         24/07/06 OPEN         NO           1 STARTED
ALLOWED    NO  ACTIVE            PRIMARY_INSTANCE   NORMAL

Si vous en êtes là, alors réjouissez-vous, le plus dur est fait : la base est démarrée, félicitations.

2.3.b. Noeud applicatif

2.3.b.a. Préparation

Avant de commencer, il convient d'effectuer quelques tâches préliminaires.

 
Sélectionnez

export IAS_ORACLE_HOME=/app/oracle/ORCLora/iAS
export PATH=$IAS_ORACLE_HOME/Apache/perl/bin:$PATH
export PERL5LIB=$IAS_ORACLE_HOME/Apache/perl/lib/5.00503:$IAS_ORACLE_HOME/Apache/perl/lib/site_perl/5.005
cp $IAS_ORACLE_HOME/jdbc/lib/classes111.zip /ORCLapp/oracle/ORCLcomn/clone/jlib/classes111.zip

2.3.b.b. Clonage

Les variables d'environnement sont paramétrées et les liens reconstruits. Dans le répertoire $IAS_ORACLE_HOME/appsutil/clone/bin, lancez : perl adcfgclone.pl appsTier.

 
Sélectionnez

Enter the APPS password [APPS]:
appspwd
 
First Creating a new context file for the cloned system.
The program is going to ask you for information about the new system:
Provide the values required for creation of the new APPL_TOP Context file.
Do you want to use a virtual hostname for the target node (y/n) [n] ?:
Target system database SID [SRCORCL]:ORCL
Target system domain name [developpez.com]:
Target system database server node [SRCSVR]:DBSVR
Target system database domain name [developpez.com]:
(1) Does the target system have more than one application tier server node (y/n) [n] ?:y
Does the target system application tier utilize multiple domain names (y/n) [n] ?:
(2) Target system concurrent processing node [SRCSVR]: GTSSVR
(3) Target system administration node [SRCSVR]: GTSSVR
(4) Target system forms server node [SRCSVR]: APPSVR
(5) Target system web server node [SRCSVR]: APPSVR
(6) Is the target system APPL_TOP divided into multiple mount points (y/n) [n] ?:
Target system APPL_TOP mount point [/SRCORCLapp/oracle/SRCORCLappl]: /ORCLapp/oracle/ORCLappl
Target system COMMON_TOP directory [/SRCORCLapp/oracle/SRCORCLcomn]: /ORCLapp/oracle/ORCLcomn
(7) Target system 8.0.6 ORACLE_HOME directory [/SRCORCLapp/oracle/SRCORCLora/8.0.6]: /ORCLapp/oracle/ORCLora/8.0.6
Target system iAS ORACLE_HOME directory [/SRCORCLapp/oracle/SRCORCLora/iAS]: /ORCLapp/oracle/ORCLora/iAStel
Do you want to preserve the Display set to SRCSVR:1.0 (y/n) [y] ?:n
Target system Display [GTSSVR:0.0]:GTSSVR:1.0 
Location of the JDK on the target system [/usr/java130]:
Do you want to preserve the port values from the source system on the target system (y/n) [y] ?:n
Enter the port pool number [0-99]: 
Web Listener port is 8001
Complete port information available at /SRCORCLapp/oracle/SRCORCLappl/admin/out/SRCORCL_GTSSVR/portpool.lst
Target system proxy hostname [SRCSVR.developpez.com]:GTSSVR.developpez.com
Target system proxy port [80]:
UTL_FILE_DIR on database tier consists of the following directories.
1. /usr/tmp
2. /SRCORCLbin/oracle/SRCORCLdb/9.2.0.2/appsutil/outbound/SRCORCL_GTSSVR
(7) Choose a value which will be set as APPLPTMP value on the target node [1]:2
Backing up /SRCORCLapp/oracle/SRCORCLappl/admin/SRCORCL_GTSSVR.xml to ...
Creating the new APPL_TOP Context file from :
  /SRCORCLapp/oracle/SRCORCLappl/ad/11.5.0/admin/template/adxmlctx.tmp
The new APPL_TOP context file has been created :
  /SRCORCLapp/oracle/SRCORCLappl/admin/SRCORCL_GTSSVR.xml
Log file located at /SRCORCLapp/oracle/SRCORCLcomn/clone/bin/CloneContext_03030941.log
Running Rapid Clone with command:
        perl /SRCORCLapp/oracle/SRCORCLcomn/clone/bin/adclone.pl ...
Beginning application tier Apply - Fri Mar  3 09:42:23 2006
Log file located at /SRCORCLapp/oracle/SRCORCLappl/admin/SRCORCL_GTSSVR/log/ApplyAppsTier_03030942.log
Completed Apply...
Fri Mar  3 09:46:45 2006
Beginning APPSIAS_SRCORCL registration to central inventory...
ORACLE_HOME NAME   : APPSIAS_SRCORCL
ORACLE_HOME PATH   : /SRCORCLapp/oracle/SRCORCLora/iAS
Using Inventory location in /etc/oraInst.loc
Log file located at /home/applSRCORCL/oraInventory/logs/OracleHomeCloner_03030946.log
(8) RC-00123: Warning: ORACLE_HOME APPSIAS_SRCORCL already exists inside the inventory
Skipping the starting of services
(9) INFO :  Rapid Clone completed successfully , but the AutoConfig run recorded  some errors.
Please review the AutoConfig section in the logfile.  If required, you can re-run AutoConfig from command line after fixing the problem

(1) : L'environnement est-il en multi-tiers, c'est à dire avec au moins 2 serveurs applicatifs (qui peuvent être exactement identiques dans le cas d'un load-balancing par exemple)
(2) et (3) : Le serveur dédié aux GTS (concurrent manager) est GTSSVR, le même serveur servira à administrer l'application
(4) et (5) : Le serveur Forms et Apache (Web) est APPSVR.
(6) : ici, il est possible de définir plusieurs chemins pour l'APPL_TOP, ce n'est pas le cas qui nous intéresse.
(7) : Le moteur de base de données 8.0.6 est livré avec Oracle Application dans un souci de compatibilité. C'est le chemin de celui-ci qu'il faut indiquer, c'est le contenu de $ORACLE_HOME de l'utilisateur applmgr à ne pas confondre avec la base 9i installée avec l'utilisateur oracle.
(8) : ce message n'est qu'un avertissement qui nous prévient que l'environnement est déjà enregistré sur le serveur. (9) : l'autoconfig ne s'est pas bien passé, mais c'est une tâche que nous referons plus tard et le problème devra être réglé par les étapes suivantes. Ignorez cette erreur pour l'instant.

Cette étape doit être réalisée sur tous les noeuds applicatifs.

2.3.c. Quelques problèmes rencontrés

Au cours de mes différents clones, j'ai pu rencontrer quelques soucis avec adcfgclone.pl.

Problèmes rencontrés
  • Il arrive d'avoir l'erreur suivante :
    FAILURE: Please apply the patch 2896876
    WARNING: Could not find all the required OS utilities in the $PATH. Please review the checks above
    Dans mon cas, c'était dû à une erreur dans la vérification effectué par le fichier $AD_TOP/bin/adchkutl.sh
    J'ai dû remplacé la ligne :
    inittabres=`cat /etc/inittab | grep "orapw:2:wait:/etc/loadext -l /etc"`;
    par
    inittabres=`cat /etc/inittab | grep "orapw:2:wait:/etc/loadext -L /etc"`;
  • Si vous avez une erreur java de type coredump, alors vérifier que oui est installé correctement avec la commande : $ORACLE_HOME/appsoui/jre/1.3.1/bin/java -version (ou dans $IAS_ORACLE_HOME sur le serveur applicatif)
    Si la même erreur est rencontrée, tentez de réinstaller oui 2.2
  • Si vous avez une erreur java de type coredump, alors vérifier que oui est installé correctement avec la commande : $ORACLE_HOME/appsoui/jre/1.3.1/bin/java -version
    Si la même erreur est rencontrée, tentez de réinstaller oui 2.2
  • Enfin, le clone peut se terminer avec une alerte sur l'enregistrement (registration error). Dans ce cas, vérifier la version de java utiliser dans le script : $ORACLE_HOME/appsutil/out/ORCL_DBSVR/regOUI_SRCSVR_SRCORCL.sh et relancez le script.
    Notez que cette erreur n'est pas bloquante.

3. Tâche post-clone

Toutes les tâches suivantes sont réalisées sur les noeuds applicatifs (ou dans la base via SQL*Plus).

3.1. Options de profil

AutoConfig ne permet que de mettre à jour les options au niveau site, il convient donc de penser à modifier les options de profil qui seraient paramétrées sur des responsabilités ou utilisateurs particulier (en particulier les options de type ICX%Launcher).
Attention également à l'option Site Name qui n'est pas non plus mise à jour, cette information s'affiche dans le titre de la fenêtre.
Je vous conseille également de changer la valeur de Java Color Scheme afin d'identifier chaque environnement par une couleur particulière.

3.2. Les imprimantes

Pensez à modifier la liste des imprimantes et mettre à jour les fichiers de configuration si vous utilisez les drivers PASTA (dans $FND_TOP/resource/pasta*.cfg, vérifier les valeurs de outFile et preprocess).
Pour corriger les chemins rapidement vous pouvez utiliser les commandes suivantes.

Remplace les chaînes de caractères dans les fichiers pasta*.cfg
Sélectionnez

perl -pi.bak -e 's/srcsvr/gtssvr/g' pasta*.cfg
perl -pi.bak -e 's/SRCSVR/GTSSVR/g' pasta*.cfg
rm *.bak

3.3. Les tables OeBS (workflow, traitements, etc...)

Le clonage ne remet pas à jour les données des tables systèmes d'OeBS. Voila la liste des commandes à exécuter sous SQL*Plus.

Exemple de mises à jour à faire
Sélectionnez

UPDATE wf_notification_attributes
   SET text_value =
          REPLACE (REPLACE (REPLACE (text_value, 'srcorcl', 'orcl'),
                            'SRCORCL',
                            'ORCL'
                           ),
                   'SRCSRV',
                   'GTSSRV'
                  );
COMMIT;
 
UPDATE wf_item_attribute_values
   SET text_value =
          REPLACE (REPLACE (REPLACE (text_value, 'srcorcl', 'orcl'),
                            'SRCORCL',
                            'ORCL'
                           ),
                   'SRCSRV',
                   'GTSSRV'
                  );
COMMIT;
 
UPDATE wf_systems
   SET NAME = 'ORCL',
       display_name = 'ORCL'
 WHERE NAME = 'SRCORCL';
COMMIT;
 
UPDATE fnd_concurrent_requests
   SET logfile_name =
          REPLACE (REPLACE (REPLACE (logfile_name, 'srcorcl', 'orcl'),
                            'SRCORCL',
                            'ORCL'
                           ),
                   'SRCSRV',
                   'GTSSRV'
                  ),
       outfile_name =
          REPLACE (REPLACE (REPLACE (outfile_name, 'srcorcl', 'orcl'),
                            'SRCORCL',
                            'ORCL'
                           ),
                   'SRCSRV',
                   'GTSSRV'
                  ),
       outfile_node_name = 'GTSSRV',
       logfile_node_name = 'GTSSRV';
COMMIT;

Vérifiez également le contenu des tables ICX_PARAMETERS, WF_AGENTS et FND_FORM_FUNCTIONS.

3.4. Fichiers de paramêtrage

Vérifiez en premier lieu le contenu du fichier contextuel $APPL_TOP/admin/ORCL_GTSSVR.xml. la variable s_discostatus est à disabled sur tous les noeuds qui ne sont pas dédié à Disco. la variable s_afjvaprg doit pointer le programme java 1.3.1 (exemple : /usr/java130/bin/java). Dans le cas de connexion distante vous pourrez être amené à mettre à yes la variable s_disco_ORBAlwaysProxy cela permet de lancer GateKeeper en même temps que Disco pour maintenir le port ouvert.

Quand le fichier contextuel est bon et que la configuration a été appliqué (via $APPLCSF/scripts/adautocfg.sh), vérifiez le contenu des fichiers $IAS_ORACLE/Apache/Jserv/etc/jserv.properties et $FND_TOP/xml/oamextensions.amx. Enfin, supprimer le cache Apache.

Vidage du cache
Sélectionnez

rm -Rf $OA_HTML/_pages/*
rm -Rf $COMMON_TOP/_pages/*
rm -Rf $IAS_ORACLE_HOME/Apache/modplsql/cache/* 

3.5. Finalisation

Le clonage touche à sa fin, il s'agit désormais de "nettoyer" l'environnement.
Dans adadmin, régénérez les fichiers JAR (Generate product JAR files), les messages (Generate message files) et recompilez les objets invalides (Compile APPS schema).
Pour finir, connectez vous à l'application et lancez les programmes de purge des traitements (Purge Concurrent Request and/or Manager Data) et un état graphique pour tester les éditions (Active Users par exemple).

Conclusion

Malheureusement, l'informatique n'est pas une science exacte et Oracle Application encore moins puisqu'il est soumis à la diversité des plate-formes et des versions. Ainsi, ne vous inquiétez pas de voir un comportement différent sur votre environnement, sachez qu'il est rare de réussir un clonage dés la première tentative. J'espère que ce tutoriel saura vous aider au mieux dans la réalisation de cette tâche et dans la fiabilisation du processus.
Pensez à user et abuser du forum Oracle où vous trouverez très souvent une aide salvatrice dans une ambiance détendue mais professionnelle.
Je tiens également à remercier toute l'équipe de Developpez.com qui a pris le temps de relire ce document permettant d'en améliorer la qualité :-)

Annexes

A. AutoConfig

Cette partie décrit brièvement la manière de mettre en oeuvre AutoConfig (Note 165195.1 de Metalink).

Générer un fichier contextuel avec AutoConfig (Coté applicatif)
  • Connectez vous à applmgr sur GTSSVR (un des serveurs applicatifs)
  • Arrêtez l'application ($APPLCSF/scripts/<SID>_<hostname>/adstpall.sh apps/<password APPS>).Ne démarrez que la base et son listener.
  • Générez le fichier <CONTEXT_NAME>.xml (où CONTEXT_NAME = <SID>_<hostname>, par exemple ORCL_GTSSVR): $AD_TOP/bin/adbldxml.pl tier=apps appsuser=APPS appspasswd=APPSPWD
  • Eventuellement, vérifiez et modifiez le fichier générer : $APPL_TOP/admin/ORCL_GTSSVR.xml. Pour appliquer les modifications, il faut lancer : $AD_TOP/bin/adconfig.sh contextfile=$APPL_TOP/admin/ORCL_GTSSVR.xml appspass=APPSPWD
  • En multi-node, je vous conseille de cloner le noeud dédié aux GTS sur les autres serveurs applicatifs et adapter les fichiers XML de chacun des noeuds selon leur usage.
Générer un fichier contextuel avec AutoConfig (Coté base de données)
  • Connectez vous à applmgr
  • Créer le fichier à transférer sur DBSVR (le serveur de base de données) : perl $AD_TOP/bin/admkappsutil.pl
  • Connectez vous à oracle sur DBSVR
  • Transférez le fichier généré précédemment. Via rcp ou ftp, copiez le fichier $APPL_TOP/admin/out/appsutil.zip de GTSSVR dans $ORACLE_HOME de DBSVR.
  • Dézippez le fichier dans $ORACLE pour créer le répertoire $ORACLE_HOME/appsutil
  • Générez le fichier <CONTEXT_NAME>.xml (où CONTEXT_NAME = <SID>_<hostname>, par exemple ORCL_DBSVR): $ORACLE_HOME/appsutil/bin/adbldxml.pl tier=db appsuser=apps appspasswd=APPSPWD (attention : vérifiez LIBPATH=$ORACLE_HOME/lib32:$LIBPATH)
  • Eventuellement, vérifiez et modifiez le fichier générer : $APPL_TOP/admin/ORCL_GTSSVR.xml. Pour appliquer les modifications, il faut lancer : $ORACLE_HOME/appsutil/bin/adconfig.sh contextfile=$ORACLE_HOME/appsutil/ORCL_DBSVR.xml appspass=APPSPWD

Notez qu'Autoconfig génère de nombreux fichiers standards (tnsnames, fichiers d'environnement, scripts d'administration, etc...). Il convient donc dans ce cas, de suivre les régles de personnalisation (customization) prévues à cette effet. Par exemple, on ne modifiera pas le fichier $TNS_ADMIN/tnsnames.ora mais on créera le fichier $TNS_ADMIN/ORCL_DBSVR_ifile.ora inclus dans le tnsnames.ora. Un autre exemple, ne modifiez pas directement $APPL_TOP/ORCL_GTSSRV.env mais créer le fichier $APPL_TOP/customORCL_GTSSRV.env pour mettre vos variables personnalisées (IX_PRINTING ou PASTA_DEBUG_LEVEL par exemple).

Les modules spécifiques doivent être ajouté dans $APPL_TOP/admin/adovars.env entre les lignes contenant # Begin customizations et # End customizations.

Si XXGL est un module spécifique
Sélectionnez

# Begin customizations
#
 
#  Add any custom variables or additional variable settings in this section.
# For example, you may wish to update your PATH to ensure it lists the
# directory containing the "jre" executable, typically $OA_JRE_TOP/bin.
#
# Make sure PATH does not include other versions of the JRE.
# Make sure PATH does not include the JDK.
 
XXGL_TOP=$APPL_TOP/xxgl/11.5.0
export XXGL_TOP
#
# End customizations

B. Vérifier le bon fonctionnement

Test Description (ou URL)
Apache http://APPSVR.developpez.com:8001
Forms http://APPSVR.developpez.com:8001/dev60cgi/f60cgi
Pl/sql Agent http://APPSVR.developpez.com:8001/pls/ORCL/FND_WEB.ping
Jserv http://APPSVR.developpez.com:8001/servlets/Hello
Jserv OeBS http://APPSVR.developpez.com:8001/servlets/oracle.apps.icx.common.ConnectionTest
iProcurement http://APPSVR.developpez.com:8001/OA_HTML/jsp/por/services/login.jsp
Test complet http://APPSVR.developpez.com:8001/OA_HTML/fnd/jsp/aoljtest.jsp
Discoverer http://DISCOSVR.developpez.com:8001/discwb4/html/discolaunch.htm
Export Excel Affichez la liste des traitements et choissez le menu Fichier/Export
TCF servlet Sous "System administrator", lancez "Application/Menu", trouvez "FND%" et cliquer sur "Voir l'arbre"
Imprimante Lancez le program FNDSCURS (Utilisateurs actifs) et visualisez l'output.

C. Références

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Frédéric Dubois. 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.