Le clonage d'OeBS

Orafrance

Administration OeBS : Clonage d'environnement

Retour au sommaire ERP ♪

- Titre : Le clonage d'OeBS

- Auteur : Orafrance

- Parution : 1 août 2004

- Licence : 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.

Sommaire

- Le clonage

- I. Présentation

- I-A. Pour les curieux

- I-B. L'environnement

- II. Le clonage d'Oracle Application

- II-A. Préclone

- II-A-1. Nœud applicatif

- II-A-2. Nœud Base de données

- II-B. Copie des fichiers

- II-B-1. Nœud applicatif

- II-B-2. Nœud Base de données

- II-B-3. Pour finir…

- II-C. Configurer les nœuds

- II-C-1. Nœud Base de données

- II-C-1-a. Préparation

- II-C-1-b. Base en mode ARCHIVELOG

- II-C-1-c. Clonage

- II-C-1-d. Postclonage

- II-C-2. Nœud applicatif

- II-C-2-a. Préparation

- II-C-2-b. Clonage

- II-C-3. Quelques problèmes rencontrés

- III. Tâche postclone

- III-A. Options de profil

- III-B. Les imprimantes

- III-C. Les tables OeBS (workflow, traitements, etc.)

- III-D. Fichiers de paramétrage

- III-E. Finalisation

- Conclusion

- Annexes

- AutoConfig

- Vérifier le bon fonctionnement

- Références

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.).

I - Présentation

I-A - 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 trois éléments (dite architecture 3-tiers) : base de données, application et poste client (navigateur Web).

Architecture Oracle Application (OeBS)

I-B - 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 nouveaux patches récents 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 côté applicatif (sachant que ce sera en réalité ORCL_DISCOSRV et ORCL_APPSVR selon le nœud) ou ORCL_DBSVR pour la base de données.
Enfin, nous imaginerons un environnement source (celui que l'on clone) en monotier (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.

II - Le clonage d'Oracle Application

II-A - 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ées 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 chacune des parties a été installée. 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.

II-A-1 - Nœud applicatif

Connectez-vous avec l'utilisateur oracle sur MONOSVR.

Préclone applicatif

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

II-A-2 - Nœud Base de données

Connectez vous avec l'utilisateur oracle sur MONOSVR.

Préclone RDBMS

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

II-B - Copie des fichiers

II-B-1 - Nœud 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.

II-B-2 - Nœud 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.

II-B-3 - 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 nœuds 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.

II-C - Configurer les nœuds

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

II-C-1 - Nœud Base de données

II-C-1-a - Préparation

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

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

II-C-1-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.

II-C-1-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.

(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é aux valeurs 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).

II-C-1-d - Postclonage

À ce stade, votre nœud 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.

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.

II-C-2 - Nœud applicatif

II-C-2-a - Préparation

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

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

II-C-2-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.

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 multitiers, 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 nœuds applicatifs.

II-C-3 - 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ée 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.

III - Tâche postclone

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

III-A - 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 particuliers (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.

III-B - 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

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

III-C - Les tables OeBS (workflow, traitements, etc.)

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

Exemple de mises à jour à faire

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.

III-D - 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 nœuds qui ne sont pas dédiés à 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

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

III-E - 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 plates-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

AutoConfig

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

Générer un fichier contextuel avec AutoConfig (Côté 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

- Éventuellement, 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 multinode, je vous conseille de cloner le nœud dédié aux GTS sur les autres serveurs applicatifs et adapter les fichiers XML de chacun des nœuds selon leur usage.

Générer un fichier contextuel avec AutoConfig (côté 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 à cet 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

# 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

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 choisissez le menu Fichier/Export

TCF servlet

Sous « System administrator », lancez « Application/Menu », trouvez « FND% » et cliquez sur « Voir l'arbre »

Imprimante

Lancez le programme FNDSCURS (Utilisateurs actifs) et visualisez l'output.

Références

Ce tutoriel a été rédigé à partir de mes notes personnelles et l'aide des notes Metalink.
Note 165195.1 - Using AutoConfig to Manage System Configurations with Oracle Applications 11i
Note 230672.1 - Cloning Oracle Applications Release 11i with Rapid Clone
Note 216664.1 - FAQ: Cloning Oracle Applications Release 11i
Dans cet article vous trouverez également des références aux liens suivants :
Présentation de Oracle eBusiness Suite
Définition d'un ERP
Présentation de PeopleSoft
Sauvegarde et restauration de données sous Oracle 9i
Pense-bête du DBA Oracle
Sans oublier les ressources internes :
le forum Oracle
le site Oracle de Developpez.com
le site SGBD de Developpez.com