I. Introduction▲
Lorsqu'une application PeopleSoft est en production, il est nécessaire d'avoir des bases de préproduction, de recette et de développement afin de pouvoir suivre le cheminement normal d'un développement jusqu'à la mise en production.
Dans ce document nous allons voir comment mettre en place un environnement PeopleSoft à partir de la production : Clonage.
Cette documentation concernant la mise en place d'une copie de l'environnement de la production peut également servir lorsque nous avons besoin uniquement de rafraichir les données.
La configuration
OS : AIX 5.5
Base de données : Mono Instance Oracle standart 10.2.0.1
Peopletools : 8.46.06
Tuxedo : 8.1
Webserver : IBM Websphere 5.1
Situation : clonage de la base de production (Prod) vers une préproduction prgprd)
Nous allons voir les trois parties essentielles :
- Base de données ;
- Tools (Appserv et PRCS) ;
- Webserver.
II. Base de données▲
Il existe une multitude de documentations qui expliquent comment cloner une base de données Oracle. Nous ne reviendrons pas là-dessus. Je vous conseille, si vous n'êtes toujours pas familier avec cette mécanique assez simple, une documentation très simple :
- Copie de bases de données par Orafrance.
Si vous souhaitez avoir une vue plus précise sur les mécanismes de la sauvegarde, restauration totale et partielle, je vous invite à lire la documentation suivante :
- Sauvegarde et restauration par Jaouad Zouaghi
Pour information, je vous rappelle la mécanique : On démarre la base en mode NoMount, on recrée les controfiles, ce qui permet non seulement de pouvoir générer de nouveaux controfiles, mais également de mettre à jour le tablespace SYSTEM et les headers (entête) de tous les tablespaces. Une ouverture de la base en mode RESETLOGS est obligatoire vu que le numéro de séquence repart à zéro.
Lorsque cette tâche de copie et de restauration Oracle a été effectuée, il reste encore quelques actions, qui se divisent en deux parties. La première concerne l'instance Oracle et la seconde est une mise à jour du dictionnaire PeopleSoft.
II-A. Partie Oracle▲
Ici il s'agit essentiellement de l'identification de la base.
Dans un premier temps nous allons mettre à jour le GLOBAL NAME :
SQL> select * from global_name ;
GLOBAL_NAME
--------------------------------------------------------------------------------
PROD
SQL> ALTER DATABASE RENAME GLOBAL_NAME TO PRGPRD ;
Base de données modifiée.
SQL> select * from global_name ;
GLOBAL_NAME
--------------------------------------------------------------------------------
PRGPRDUne autre mise à jour importante est celle de l'ID de la base. L'ID de la base est un numéro qui va identifier de manière unique la base de données.
SQL> SELECT dbid, name FROM v$database ;
DBID NAME
---------- ---------
2058528667 PRGPRDPour pouvoir mettre à jour ce numéro d'identification, Oracle met à notre disposition un binaire : NID pour New identification number
Tout d'abord il faut redémarrer la base en mode mount. C'est assez logique, car le nid met à jour les entêtes de fichiers de données (Header), le tablespace System et enfin les controlfiles, donc il a besoin d'avoir monté les fichiers de données avec l'instance Oracle.
Démarrer la base en Mode Mount :
SQL> startup mount
ORACLE instance started.
Total System Global Area 3472883712 bytes
Fixed Size 2075216 bytes
Variable Size 788530608 bytes
Database Buffers 2667577344 bytes
Redo Buffers 14700544 bytes
Database mounted.Ensuite lancer le NID :
sproerp07-oracle: /home/oracle>nid
DBNEWID: Release 10.2.0.2.0 - Production on Tue Feb 20 10:44:36 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Keyword Description (Default)
----------------------------------------------------
TARGET Username/Password (NONE)
DBNAME New database name (NONE)
LOGFILE Output Log (NONE)
REVERT Revert failed change NO
SETNAME Set a new database name only NO
APPEND Append to output log NO
HELP Displays these messages NO
sproerp07-oracle: /home/oracle>NID est présent dans le répertoire $ORACLE_HOME/bin
nid target='sys as sysdba' logfile=/home/ora10G/nid_PRGPRD.log
DBNEWID: Release 10.2.0.2.0 - Production on Tue Feb 20 10:46:16 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Password:
Connected to database PRGPRD (DBID=2058528667)
Connected to serveur version 10.2.0
Control Files in database:
/oracle/ctl/prgprd/control01.ctl
/oracle/ctl/prgprd/control02.ctl
/oracle/ctl/prgprd/control03.ctl
Changing database ID from 2058528667 to 1942856571
Control File /oracle/ctl/prgprd/control01.ctl - modified
Control File /oracle/ctl/prgprd/control02.ctl - modified
(...)
Control File /oracle/ctl/prgprd/control03.ctl - dbid changed
Instance shut down
Database ID for database PRGPRD changed to 1942856571.
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database ID.
DBNEWID - Completed succesfully.Nous pouvons apercevoir notre nouvel ID.
La base ayant été arrêtée par NID, il convient de la redémarrer en effectuant un open resetlogs nécessaire suite à notre nouvel ID.
SQL*Plus: Release 10.2.0.2.0 - Production on Tue Feb 20 10:48:34 2007
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 3472883712 bytes
Fixed Size 2075216 bytes
Variable Size 788530608 bytes
Database Buffers 2667577344 bytes
Redo Buffers 14700544 bytes
Database mounted.
SQL> alter database open resetlogs ;
Database altered.Si nous vérifions à nouveau l'ID :
SQL> SELECT dbid, name FROM v$database ;
DBID NAME
---------- ---------------------------
1942856571 PRGPRDBien sûr ne pas oublier de mettre à jour la partie Net*8 : Listener et Résolution de nom, uniquement s'il s'agit d'une nouvelle base.
II-B. Partie PeopleSoft▲
Ensuite nous allons nous attaquer à ce qui concerne la mise à jour du dictionnaire PeopleSoft via la partie Oracle.
Il s'agit donc de mettre à jour les références de la production par la nouvelle base.
DELETE PS.PSDBOWNER;
INSERT INTO PS.PSDBOWNER (DBNAME,OWNERID) values ('PRGPRD','SYSADM');
COMMIT;La table PSDBOWNER va permettre d'identifier de manière précise à quel utilisateur appartient une base de données au sens PeopleSoft. De plus lors de la connexion, il va dire quel schéma Oracle utiliser.
UPDATE SYSADM.PSOPTIONS
SET SYSTEMTYPE ='INT'
,SHORTNAME ='PRGPRD'
,LONGNAME ='PRGPRD'
,GUID =' '
,F1URL ='http://10.2.2.23/PSOL/htmldoc/index.htm'
,CTRLF1URL ='http://10.2.2.23/PSOL/htmldoc/index.htm';
COMMIT;Ici nous mettons à jour les références de la nouvelle base. Le GUID est tout comme l'identification number, le numéro qui identifie de manière unique une base de données PeopleSoft.
Le F1URL et le CTRLF1URL indiquent à PeopleSoft où trouver l'aide lorsque celle-ci est installée.
La mise à jour de cette identification se fait en deux temps. La première est de mettre à jour à blanc, le GUID dans la table PSOPTIONS. Ensuite lors du démarrage des Applications servers, un nouveau GUID lui sera attribué.
Exemple :
SQL> select shortname ,guid from psoptions ;
SHORTNAME GUID
--------------- ------------------------------------
PRGPRD ee03c76c-1dd1-11b2-a51a-c6a27d6b7216
SQL> update psoptions set guid =' ' ;
1 ligne mise à jour.
SQL> commit ;
Validation effectuée.
SQL> select shortname ,guid from psoptions ;
SHORTNAME GUID
--------------- ------------------------------------
PRGPRDOn redémarre les Applications servers :
SQL> psadmin -c boot -d PRGPRD
SQL> select shortname ,guid from psoptions
SHORTNAME GUID
--------------- ------------------------------------
PRGPRD 81851b12-1dd2-11b2-a520-c6a27d6b7216Le GUID a été modifié.
Mise à jour de la PS_CDM_DIST_NODE :
UPDATE sysadm.PS_CDM_DIST_NODE
SET DISTNODENAME ='Node FINA'
,OPSYS ='4'
,FTPID ='psoft84'
,OPERPSWD ='zuxGwr6qWiimqIVQLgo8HA=='
,FTPADDRESS ='127.0.0.1'
,FTPDIRECTORY ='/psoftsp1/psreports'
,URL ='http://127.0.0.1/psreports/PRGPRD'
,WINNETWORKPATH =' '
,DIRLOCATION =' '
,URI_HOST =' '
,URI_PORT ='0'
,URI_QUERY =' '
,URI_RESOURCE =' '
,URI_SCHEME =' '
,URI_RPT ='http://127.0.0.1/psc/PREPRD/EMPLOYEE/ERP/c/CDM_RPT.CDM_RPT.GBL?Page=CDM_RPT_INDEX'||'&'||'Action=U'||'&'||'CDM_ID='
,CDM_DIR_TEMPLATE='%DBNAME%/%CURRDATE%/%REPORTID%'
,DESCRLONG ='Noeud de distribution de la base de PREPRD';
COMMIT;La table PS_CDM_DIST_NODE définit les paramètres du nœud de distribution de l'application PeopleSoft. Notamment où vont être stockés les fichiers suite aux traitements.
SELECT * FROM PS_CDM_LIST
WHERE prcsinstance = :1Mise à jour des mots de passe
Mise à jour des mots de passe utilisateurs :
Ici nous allons mettre à jour les mots de passe utilisateurs : où le mot de passe est égal au nom d'utilisateur. La table impactée est la table PSOPRDEFN. Le champ OPRID correspond à l'utilisateur et le champ OPERPSWD à celui du mot de passe.
Le champ encrypted doit être à 0 pour que DATA MOVER réencrypte ce mot de passe.
Attention, une modification du mot de passe de l'utilisateur par lequel se connecte le serveur Web et les AS et PRCS, sinon il faudra reconfigurer toute la chaine.
Le changement du mot de passe de l'utilisateur par lequel se connectent les APPSERV et les PRCS nécessite la reconfiguration de ces derniers, et de le reconfigurer via PSADMIN.
Quant à l'utilisateur du serveur Web, il faut modifier son mot de passe dans le fichier configuration.properties dans le répertoire :
$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/WEB-INF/psftdocsPour modifier le mot de passe du schéma (au sens Oracle) propriétaire de l'application PeopleSoft, la procédure est plus simple :
L'accès password correspond à la colonne symbolicid de la table psoprdefn. TOTO correspond au nouveau password. Cette procédure permet de changer et de crypter le mot de passe.
Mise à zéro des séquences
Dans cette séquence nous allons remettre à 0 les différentes séquences présentes dans PeopleSoft. Les séquences sont gérées dans la table :
SQL> SELECT * FROM PS_PRCSSEQUENCE ;
PR SEQUENCENO MIN_SEQ_NBR MAX_SEQ_NBR
-- ---------- ----------- -----------
0 256899 1 9999999
1 141179 1 9999999
2 141860 1 9999999
3 48710 1 9999999
4 7 1 9999999La colonne PRCSSEQKEY recense les différentes séquences :
0 = Process Instance
1 = Report Instance
2 = Transfer InstanceIl suffit pour ce faire de remettre à 0 la colonne SEQUENCENO.
Nettoyages des tables du Process scheduler
Ici nous supprimons les données de certaines tables notamment les tables de process scheduler, créons les index et enfin mettons à jour les statistiques :
-- Partie PeopleSoft
/*************************************************************************
Nettoyage des tables
*************************************************************************/
-- La liste des tables est fournie par PeopleSoft dans 3 DMS standards prcsclr.dms rptclr.dms et appmsgpurgeall.dms
-- Des tables additionnelles sont nettoyees. La liste provient du document fourni par PeopleSoft : Cloning_a_PS_Database.
-- Par souci de performance, ON sysadm.a remplace le DELETE FROM par TRUNCATE TABLE.
-- Truncate des tables
TRUNCATE TABLE SYSADM.PS_CDM_AUTH;
TRUNCATE TABLE SYSADM.PS_CDM_FILE_LIST;
TRUNCATE TABLE SYSADM.PS_CDM_LIST;
TRUNCATE TABLE SYSADM.PS_CDM_LIST_ARCH;
TRUNCATE TABLE SYSADM.PS_CDM_TEXT;
TRUNCATE TABLE SYSADM.PS_CDM_TRANSFER;
TRUNCATE TABLE SYSADM.PS_CDM_TRNFR_RJCT;
TRUNCATE TABLE SYSADM.PS_MESSAGE_LOG;
TRUNCATE TABLE SYSADM.PS_MESSAGE_LOGPARM;
TRUNCATE TABLE SYSADM.PS_PRCSRQSTDIST;
TRUNCATE TABLE SYSADM.PS_PRCSRQSTNOTIFY;
TRUNCATE TABLE SYSADM.PSAPMSGARCHPC;
TRUNCATE TABLE SYSADM.PSAPMSGARCHPD;
TRUNCATE TABLE SYSADM.PSAPMSGARCHPH;
TRUNCATE TABLE SYSADM.PSAPMSGARCHPT;
TRUNCATE TABLE SYSADM.PSAPMSGARCHSC;
TRUNCATE TABLE SYSADM.PSAPMSGARCHST;
TRUNCATE TABLE SYSADM.PSAPMSGPCONDATA;
TRUNCATE TABLE SYSADM.PSAPMSGPUBCERR;
TRUNCATE TABLE SYSADM.PSAPMSGPUBCERRP;
TRUNCATE TABLE SYSADM.PSAPMSGPUBCON;
TRUNCATE TABLE SYSADM.PSAPMSGPUBDATA;
TRUNCATE TABLE SYSADM.PSAPMSGPUBERR;
TRUNCATE TABLE SYSADM.PSAPMSGPUBERRP;
TRUNCATE TABLE SYSADM.PSAPMSGPUBHDR;
TRUNCATE TABLE SYSADM.PSAPMSGSCONDATA;
TRUNCATE TABLE SYSADM.PSAPMSGSUBCERR;
TRUNCATE TABLE SYSADM.PSAPMSGSUBCERRP;
TRUNCATE TABLE SYSADM.PSAPMSGSUBCON;
TRUNCATE TABLE SYSADM.PSIBLOGDATA;
TRUNCATE TABLE SYSADM.PSIBLOGDATAARCH;
TRUNCATE TABLE SYSADM.PSIBLOGERR;
TRUNCATE TABLE SYSADM.PSIBLOGERRP;
TRUNCATE TABLE SYSADM.PSIBLOGHDR;
TRUNCATE TABLE SYSADM.PSIBLOGHDRARCH;
TRUNCATE TABLE SYSADM.PSPRCSCHLDINFO;
TRUNCATE TABLE SYSADM.PSPRCSPARMS;
TRUNCATE TABLE SYSADM.PSPRCSQUE;
TRUNCATE TABLE SYSADM.PSPRCSRQST;
TRUNCATE TABLE SYSADM.PSPRCSRQSTFILE;
TRUNCATE TABLE SYSADM.PSPRCSRQSTMETA;
TRUNCATE TABLE SYSADM.PSPRCSRQSTSTRNG;
TRUNCATE TABLE SYSADM.PSPRCSRQSTTEXT;
TRUNCATE TABLE SYSADM.PSPRCSRQSTTIME;
TRUNCATE TABLE SYSADM.PSPRCSRQSTXFER;
TRUNCATE TABLE SYSADM.PSRF_RATTR_TBL;
TRUNCATE TABLE SYSADM.PSRF_RINFO_TBL;
TRUNCATE TABLE SYSADM.PSRF_RSCRTY_TBL;
DELETE SYSADM.PSRF_FINFO_TBL WHERE PSRF_PRNT_FLDR_ID <> 0;
-- Lacement des statistiques sur les tables
analyze table sysadm.PSPRCSRQST estimate statistics ;
analyze table sysadm.PSPRCSQUE estimate statistics ;
analyze table sysadm.PSPRCSCHLDINFO estimate statistics ;
analyze table sysadm.PSPRCSPARMS estimate statistics ;
analyze table sysadm.PSPRCSRQSTTEXT estimate statistics ;
analyze table sysadm.PSPRCSRQSTXFER estimate statistics ;
analyze table sysadm.PS_PRCSRQSTDIST estimate statistics ;
analyze table sysadm.PS_MESSAGE_LOG estimate statistics ;
analyze table sysadm.PS_MESSAGE_LOGPARM estimate statistics ;
analyze table sysadm.PSPRCSRQSTFILE estimate statistics ;
analyze table sysadm.PSPRCSRQSTMETA estimate statistics ;
analyze table sysadm.PSPRCSRQSTSTRNG estimate statistics ;
analyze table sysadm.PSPRCSRQSTTIME estimate statistics ;
analyze table sysadm.PS_PRCSRQSTNOTIFY estimate statistics ;
analyze table sysadm.PS_CDM_LIST estimate statistics ;
analyze table sysadm.PS_CDM_AUTH estimate statistics ;
analyze table sysadm.PS_CDM_TEXT estimate statistics ;
analyze table sysadm.PS_CDM_FILE_LIST estimate statistics ;
analyze table sysadm.PS_CDM_TRANSFER estimate statistics ;
analyze table sysadm.PS_CDM_TRNFR_RJCT estimate statistics ;
analyze table sysadm.PS_CDM_LIST_ARCH estimate statistics ;
analyze table sysadm.PSAPMSGPUBHDR estimate statistics ;
analyze table sysadm.PSAPMSGPUBDATA estimate statistics ;
analyze table sysadm.PSAPMSGPUBCON estimate statistics ;
analyze table sysadm.PSAPMSGSUBCON estimate statistics ;
analyze table sysadm.PSAPMSGPUBERR estimate statistics ;
analyze table sysadm.PSAPMSGPUBERRP estimate statistics ;
analyze table sysadm.PSAPMSGPUBCERR estimate statistics ;
analyze table sysadm.PSAPMSGPUBCERRP estimate statistics ;
analyze table sysadm.PSAPMSGSUBCERR estimate statistics ;
analyze table sysadm.PSAPMSGSUBCERRP estimate statistics ;
analyze table sysadm.PSAPMSGPCONDATA estimate statistics ;
analyze table sysadm.PSAPMSGSCONDATA estimate statistics ;
analyze table sysadm.PSIBLOGHDR estimate statistics ;
analyze table sysadm.PSIBLOGDATA estimate statistics ;
analyze table sysadm.PSIBLOGERR estimate statistics ;
analyze table sysadm.PSIBLOGERRP estimate statistics ;
analyze table sysadm.PSAPMSGARCHPH estimate statistics ;
analyze table sysadm.PSAPMSGARCHPD estimate statistics ;
analyze table sysadm.PSAPMSGARCHPC estimate statistics ;
analyze table sysadm.PSAPMSGARCHSC estimate statistics ;
analyze table sysadm.PSAPMSGARCHPT estimate statistics ;
analyze table sysadm.PSAPMSGARCHST estimate statistics ;
analyze table sysadm.PSIBLOGHDRARCH estimate statistics ;
analyze table sysadm.PSIBLOGDATAARCH estimate statistics ;
analyze table sysadm.PSRF_RATTR_TBL estimate statistics ;
analyze table sysadm.PSRF_RSCRTY_TBL estimate statistics ;
analyze table sysadm.PSRF_RINFO_TBL estimate statistics ;
analyze table sysadm.PSRF_FINFO_TBL estimate statistics ;
-- Build des index (généré à partir d Application Designer)
DROP INDEX SYSADM.PS_CDM_AUTH
/
DROP INDEX SYSADM.PSACDM_AUTH
/
CREATE UNIQUE INDEX SYSADM.PS_CDM_AUTH ON sysadm.PS_CDM_AUTH (CONTENTID,
PRCSINSTANCE,
DISTID,
DISTIDTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSACDM_AUTH ON sysadm.PS_CDM_AUTH (DISTIDTYPE) TABLESPACE
PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS UNLIMITED
PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_CDM_FILE_LIST
/
CREATE UNIQUE INDEX SYSADM.PS_CDM_FILE_LIST ON sysadm.PS_CDM_FILE_LIST
(PRCSINSTANCE,
CONTENTID,
FILENAME) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_CDM_LIST
/
DROP INDEX SYSADM.PSACDM_LIST
/
CREATE UNIQUE INDEX SYSADM.PS_CDM_LIST ON sysadm.PS_CDM_LIST (PRCSINSTANCE,
CONTENTID) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSACDM_LIST ON sysadm.PS_CDM_LIST (DISTSTATUS,
TRANSFERINSTANCE,
PRCSINSTANCE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_CDM_LIST_ARCH
/
CREATE UNIQUE INDEX SYSADM.PS_CDM_LIST_ARCH ON sysadm.PS_CDM_LIST_ARCH (ARCHIVE_DT,
PRCSINSTANCE,
CONTENTID) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_CDM_TEXT
/
CREATE UNIQUE INDEX SYSADM.PS_CDM_TEXT ON sysadm.PS_CDM_TEXT (PRCSINSTANCE,
CONTENTID,
CDMTEXTTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_CDM_TRANSFER
/
CREATE UNIQUE INDEX SYSADM.PS_CDM_TRANSFER ON sysadm.PS_CDM_TRANSFER
(TRANSFERINSTANCE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_CDM_TRNFR_RJCT
/
CREATE UNIQUE INDEX SYSADM.PS_CDM_TRNFR_RJCT ON sysadm.PS_CDM_TRNFR_RJCT
(TRANSFERINSTANCE,
PRCSINSTANCE,
CONTENTID,
TRANSFERSEQUENCENO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_MESSAGE_LOG
/
CREATE UNIQUE INDEX SYSADM.PS_MESSAGE_LOG ON sysadm.PS_MESSAGE_LOG
(PROCESS_INSTANCE,
MESSAGE_SEQ) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_MESSAGE_LOGPARM
/
CREATE UNIQUE INDEX SYSADM.PS_MESSAGE_LOGPARM ON sysadm.PS_MESSAGE_LOGPARM
(PROCESS_INSTANCE,
MESSAGE_SEQ,
PARM_SEQ) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PRCSRQSTDIST
/
CREATE UNIQUE INDEX SYSADM.PS_PRCSRQSTDIST ON sysadm.PS_PRCSRQSTDIST (PRCSINSTANCE,
DISTID,
DISTIDTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PRCSRQSTNOTIFY
/
CREATE INDEX SYSADM.PS_PRCSRQSTNOTIFY ON sysadm.PS_PRCSRQSTNOTIFY (PRCSINSTANCE,
DISTID,
DISTIDTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGARCHPC
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGARCHPC ON sysadm.PSAPMSGARCHPC (PUBNODE,
CHNLNAME,
PUBID,
SUBNODE,
IB_SEGMENTINDEX) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGARCHPD
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGARCHPD ON sysadm.PSAPMSGARCHPD (PUBNODE,
CHNLNAME,
PUBID,
SEGMENTNO,
SUBSEGMENTNO,
DATASEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGARCHPH
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGARCHPH ON sysadm.PSAPMSGARCHPH (PUBNODE,
CHNLNAME,
PUBID,
EXTERNALMESSAGEID) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGARCHPT
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGARCHPT ON sysadm.PSAPMSGARCHPT (PUBNODE,
CHNLNAME,
PUBID,
SUBNODE,
IB_SEGMENTINDEX,
SEGMENTNO,
SUBSEGMENTNO,
DATASEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGARCHSC
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGARCHSC ON sysadm.PSAPMSGARCHSC (PUBNODE,
CHNLNAME,
PUBID,
MSGNAME,
SUBNAME,
IB_SEGMENTINDEX) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGARCHST
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGARCHST ON sysadm.PSAPMSGARCHST (PUBNODE,
CHNLNAME,
PUBID,
MSGNAME,
SEGMENTNO,
SUBSEGMENTNO,
DATASEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGPCONDATA
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGPCONDATA ON sysadm.PSAPMSGPCONDATA (PUBNODE,
CHNLNAME,
PUBID,
SUBNODE,
IB_SEGMENTINDEX,
SEGMENTNO,
SUBSEGMENTNO,
DATASEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGPUBCERR
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGPUBCERR ON sysadm.PSAPMSGPUBCERR (PUBNODE,
CHNLNAME,
PUBID,
SUBNODE,
IB_SEGMENTINDEX,
ERRORTIMESTAMP,
SEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGPUBCERRP
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGPUBCERRP ON sysadm.PSAPMSGPUBCERRP (PUBNODE,
CHNLNAME,
PUBID,
SUBNODE,
IB_SEGMENTINDEX,
ERRORTIMESTAMP,
SEQNO,
PARM_SEQ) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGPUBCON
/
DROP INDEX SYSADM.PSAPSAPMSGPUBCON
/
DROP INDEX SYSADM.PSBPSAPMSGPUBCON
/
DROP INDEX SYSADM.PSCPSAPMSGPUBCON
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGPUBCON ON sysadm.PSAPMSGPUBCON (PUBNODE,
CHNLNAME,
PUBID,
SUBNODE,
IB_SEGMENTINDEX) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSAPSAPMSGPUBCON ON sysadm.PSAPMSGPUBCON (CHNLNAME) TABLESPACE
PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS UNLIMITED
PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSBPSAPMSGPUBCON ON sysadm.PSAPMSGPUBCON (CHNLNAME,
LASTUPDDTTM) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSCPSAPMSGPUBCON ON sysadm.PSAPMSGPUBCON (CHNLNAME,
PUBCONSTATUS,
PUBLISHTIMESTAMP,
PUBID,
SUBCHANNEL,
SUBNODE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGPUBDATA
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGPUBDATA ON sysadm.PSAPMSGPUBDATA (PUBNODE,
CHNLNAME,
PUBID,
SEGMENTNO,
SUBSEGMENTNO,
DATASEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGPUBERR
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGPUBERR ON sysadm.PSAPMSGPUBERR (PUBNODE,
CHNLNAME,
PUBID,
ERRORTIMESTAMP,
SEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGPUBERRP
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGPUBERRP ON sysadm.PSAPMSGPUBERRP (PUBNODE,
CHNLNAME,
PUBID,
ERRORTIMESTAMP,
SEQNO,
PARM_SEQ) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGPUBHDR
/
DROP INDEX SYSADM.PSAPSAPMSGPUBHDR
/
DROP INDEX SYSADM.PSBPSAPMSGPUBHDR
/
DROP INDEX SYSADM.PSCPSAPMSGPUBHDR
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGPUBHDR ON sysadm.PSAPMSGPUBHDR (PUBNODE,
CHNLNAME,
PUBID,
EXTERNALMESSAGEID) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSAPSAPMSGPUBHDR ON sysadm.PSAPMSGPUBHDR (CHNLNAME) TABLESPACE
PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS UNLIMITED
PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSBPSAPMSGPUBHDR ON sysadm.PSAPMSGPUBHDR (CHNLNAME,
LASTUPDDTTM) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSCPSAPMSGPUBHDR ON sysadm.PSAPMSGPUBHDR (CHNLNAME,
PUBSTATUS,
PUBLISHTIMESTAMP,
PUBID,
SUBCHANNEL) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGSCONDATA
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGSCONDATA ON sysadm.PSAPMSGSCONDATA (PUBNODE,
CHNLNAME,
PUBID,
MSGNAME,
SEGMENTNO,
SUBSEGMENTNO,
DATASEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGSUBCERR
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGSUBCERR ON sysadm.PSAPMSGSUBCERR (PUBNODE,
CHNLNAME,
PUBID,
MSGNAME,
SUBNAME,
IB_SEGMENTINDEX,
ERRORTIMESTAMP,
SEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGSUBCERRP
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGSUBCERRP ON sysadm.PSAPMSGSUBCERRP (PUBNODE,
CHNLNAME,
PUBID,
MSGNAME,
SUBNAME,
IB_SEGMENTINDEX,
ERRORTIMESTAMP,
SEQNO,
PARM_SEQ) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSAPMSGSUBCON
/
DROP INDEX SYSADM.PSAPSAPMSGSUBCON
/
DROP INDEX SYSADM.PSBPSAPMSGSUBCON
/
DROP INDEX SYSADM.PSCPSAPMSGSUBCON
/
CREATE UNIQUE INDEX SYSADM.PS_PSAPMSGSUBCON ON sysadm.PSAPMSGSUBCON (PUBNODE,
CHNLNAME,
PUBID,
MSGNAME,
SUBNAME,
IB_SEGMENTINDEX) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSAPSAPMSGSUBCON ON sysadm.PSAPMSGSUBCON (CHNLNAME) TABLESPACE
PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS UNLIMITED
PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSBPSAPMSGSUBCON ON sysadm.PSAPMSGSUBCON (CHNLNAME,
LASTUPDDTTM) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSCPSAPMSGSUBCON ON sysadm.PSAPMSGSUBCON (CHNLNAME,
SUBCONSTATUS,
PUBLISHTIMESTAMP,
PUBID,
SUBCHANNEL,
SUBNAME) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSIBLOGDATA
/
CREATE UNIQUE INDEX SYSADM.PS_PSIBLOGDATA ON sysadm.PSIBLOGDATA (ORIGPUBNODE,
CHNLNAME,
GUID,
MSGNAME,
APMSGVER,
DATASEQNO,
LOGTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSIBLOGDATAARCH
/
CREATE UNIQUE INDEX SYSADM.PS_PSIBLOGDATAARCH ON sysadm.PSIBLOGDATAARCH
(ORIGPUBNODE,
CHNLNAME,
GUID,
MSGNAME,
APMSGVER,
DATASEQNO,
LOGTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSIBLOGERR
/
CREATE UNIQUE INDEX SYSADM.PS_PSIBLOGERR ON sysadm.PSIBLOGERR (ORIGPUBNODE,
CHNLNAME,
GUID,
ERRORTIMESTAMP,
SEQNO) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSIBLOGERRP
/
CREATE UNIQUE INDEX SYSADM.PS_PSIBLOGERRP ON sysadm.PSIBLOGERRP (ORIGPUBNODE,
CHNLNAME,
GUID,
ERRORTIMESTAMP,
SEQNO,
PARM_SEQ) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSIBLOGHDR
/
CREATE UNIQUE INDEX SYSADM.PS_PSIBLOGHDR ON sysadm.PSIBLOGHDR (ORIGPUBNODE,
CHNLNAME,
GUID,
MSGNAME,
APMSGVER,
TRXTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSIBLOGHDRARCH
/
CREATE UNIQUE INDEX SYSADM.PS_PSIBLOGHDRARCH ON sysadm.PSIBLOGHDRARCH (ORIGPUBNODE,
CHNLNAME,
GUID,
MSGNAME,
APMSGVER,
TRXTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSCHLDINFO
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSCHLDINFO ON sysadm.PSPRCSCHLDINFO
(PRCSINSTANCE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSPARMS
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSPARMS ON sysadm.PSPRCSPARMS (PRCSINSTANCE)
TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS
UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSQUE
/
DROP INDEX SYSADM.PSAPSPRCSQUE
/
DROP INDEX SYSADM.PSBPSPRCSQUE
/
DROP INDEX SYSADM.PSCPSPRCSQUE
/
DROP INDEX SYSADM.PSDPSPRCSQUE
/
DROP INDEX SYSADM.PSEPSPRCSQUE
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSQUE ON sysadm.PSPRCSQUE (PRCSINSTANCE)
TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS
UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSAPSPRCSQUE ON sysadm.PSPRCSQUE (SERVERNAMERQST,
SERVERNAMERUN,
OPSYS,
RUNSTATUS) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSBPSPRCSQUE ON sysadm.PSPRCSQUE (SERVERNAMERUN,
PRCSINSTANCE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSCPSPRCSQUE ON sysadm.PSPRCSQUE (PRCSINSTANCE,
SESSIONIDNUM,
OPRID) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSDPSPRCSQUE ON sysadm.PSPRCSQUE (MAINJOBINSTANCE) TABLESPACE
PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS UNLIMITED
PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSEPSPRCSQUE ON sysadm.PSPRCSQUE (RECURORIGPRCSINST,
RECURNAME,
INITIATEDNEXT) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSRQST
/
DROP INDEX SYSADM.PSAPSPRCSRQST
/
DROP INDEX SYSADM.PSBPSPRCSRQST
/
DROP INDEX SYSADM.PSCPSPRCSRQST
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSRQST ON sysadm.PSPRCSRQST (PRCSINSTANCE)
TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS
UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSAPSPRCSRQST ON sysadm.PSPRCSRQST (JOBINSTANCE) TABLESPACE
PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS UNLIMITED
PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSBPSPRCSRQST ON sysadm.PSPRCSRQST (OPRID,
RQSTDTTM,
PRCSTYPE,
PRCSJOBSEQ) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
CREATE INDEX SYSADM.PSCPSPRCSRQST ON sysadm.PSPRCSRQST (MAINJOBINSTANCE)
TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000 MAXEXTENTS
UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSRQSTFILE
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSRQSTFILE ON sysadm.PSPRCSRQSTFILE (PRCSINSTANCE,
SEQNUM) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSRQSTMETA
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSRQSTMETA ON sysadm.PSPRCSRQSTMETA (PRCSINSTANCE,
METAPARM) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSRQSTSTRNG
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSRQSTSTRNG ON sysadm.PSPRCSRQSTSTRNG
(PRCSINSTANCE,
RQSTSTRINGTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PSAPSPRCSRQSTTEXT
/
CREATE UNIQUE INDEX SYSADM.PSAPSPRCSRQSTTEXT ON sysadm.PSPRCSRQSTTEXT (PRCSINSTANCE,
RQSTTEXTTYPE) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSRQSTTIME
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSRQSTTIME ON sysadm.PSPRCSRQSTTIME (PRCSINSTANCE,
SEQNUM) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSPRCSRQSTXFER
/
CREATE UNIQUE INDEX SYSADM.PS_PSPRCSRQSTXFER ON sysadm.PSPRCSRQSTXFER (PRCSINSTANCE,
KEYNAME) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSRF_FINFO_TBL
/
CREATE UNIQUE INDEX SYSADM.PS_PSRF_FINFO_TBL ON sysadm.PSRF_FINFO_TBL
(PSRF_FOLDER_ID) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSRF_RATTR_TBL
/
CREATE UNIQUE INDEX SYSADM.PS_PSRF_RATTR_TBL ON sysadm.PSRF_RATTR_TBL
(PSRF_REPORT_ID,
PSRF_ATTRIBUT_NAME) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSRF_RINFO_TBL
/
CREATE UNIQUE INDEX SYSADM.PS_PSRF_RINFO_TBL ON sysadm.PSRF_RINFO_TBL
(PSRF_REPORT_ID) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
DROP INDEX SYSADM.PS_PSRF_RSCRTY_TBL
/
CREATE UNIQUE INDEX SYSADM.PS_PSRF_RSCRTY_TBL ON sysadm.PSRF_RSCRTY_TBL (USERID,
PSRF_REPORT_ID) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT
100000 MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10
/
COMMIT
/
-- Lacement des statistiques sur les index
analyze index sysadm.PS_CDM_AUTH estimate statistics ;
analyze index sysadm.PSACDM_AUTH estimate statistics ;
analyze index sysadm.PS_CDM_FILE_LIST estimate statistics ;
analyze index sysadm.PS_CDM_LIST estimate statistics ;
analyze index sysadm.PSACDM_LIST estimate statistics ;
analyze index sysadm.PS_CDM_LIST_ARCH estimate statistics ;
analyze index sysadm.PS_CDM_TEXT estimate statistics ;
analyze index sysadm.PS_CDM_TRANSFER estimate statistics ;
analyze index sysadm.PS_CDM_TRNFR_RJCT estimate statistics ;
analyze index sysadm.PS_MESSAGE_LOG estimate statistics ;
analyze index sysadm.PS_MESSAGE_LOGPARM estimate statistics ;
analyze index sysadm.PS_PRCSRQSTDIST estimate statistics ;
analyze index sysadm.PS_PRCSRQSTNOTIFY estimate statistics ;
analyze index sysadm.PS_PSAPMSGARCHPC estimate statistics ;
analyze index sysadm.PS_PSAPMSGARCHPD estimate statistics ;
analyze index sysadm.PS_PSAPMSGARCHPH estimate statistics ;
analyze index sysadm.PS_PSAPMSGARCHPT estimate statistics ;
analyze index sysadm.PS_PSAPMSGARCHSC estimate statistics ;
analyze index sysadm.PS_PSAPMSGARCHST estimate statistics ;
analyze index sysadm.PS_PSAPMSGPCONDATA estimate statistics ;
analyze index sysadm.PS_PSAPMSGPUBCERR estimate statistics ;
analyze index sysadm.PS_PSAPMSGPUBCERRP estimate statistics ;
analyze index sysadm.PS_PSAPMSGPUBCON estimate statistics ;
analyze index sysadm.PSAPSAPMSGPUBCON estimate statistics ;
analyze index sysadm.PSBPSAPMSGPUBCON estimate statistics ;
analyze index sysadm.PSCPSAPMSGPUBCON estimate statistics ;
analyze index sysadm.PS_PSAPMSGPUBDATA estimate statistics ;
analyze index sysadm.PS_PSAPMSGPUBERR estimate statistics ;
analyze index sysadm.PS_PSAPMSGPUBERRP estimate statistics ;
analyze index sysadm.PS_PSAPMSGPUBHDR estimate statistics ;
analyze index sysadm.PSAPSAPMSGPUBHDR estimate statistics ;
analyze index sysadm.PSBPSAPMSGPUBHDR estimate statistics ;
analyze index sysadm.PSCPSAPMSGPUBHDR estimate statistics ;
analyze index sysadm.PS_PSAPMSGSCONDATA estimate statistics ;
analyze index sysadm.PS_PSAPMSGSUBCERR estimate statistics ;
analyze index sysadm.PS_PSAPMSGSUBCERRP estimate statistics ;
analyze index sysadm.PS_PSAPMSGSUBCON estimate statistics ;
analyze index sysadm.PSAPSAPMSGSUBCON estimate statistics ;
analyze index sysadm.PSBPSAPMSGSUBCON estimate statistics ;
analyze index sysadm.PSCPSAPMSGSUBCON estimate statistics ;
analyze index sysadm.PS_PSIBLOGDATA estimate statistics ;
analyze index sysadm.PS_PSIBLOGDATAARCH estimate statistics ;
analyze index sysadm.PS_PSIBLOGERR estimate statistics ;
analyze index sysadm.PS_PSIBLOGERRP estimate statistics ;
analyze index sysadm.PS_PSIBLOGHDR estimate statistics ;
analyze index sysadm.PS_PSIBLOGHDRARCH estimate statistics ;
analyze index sysadm.PS_PSPRCSCHLDINFO estimate statistics ;
analyze index sysadm.PS_PSPRCSPARMS estimate statistics ;
analyze index sysadm.PS_PSPRCSQUE estimate statistics ;
analyze index sysadm.PSAPSPRCSQUE estimate statistics ;
analyze index sysadm.PSBPSPRCSQUE estimate statistics ;
analyze index sysadm.PSCPSPRCSQUE estimate statistics ;
analyze index sysadm.PSDPSPRCSQUE estimate statistics ;
analyze index sysadm.PSEPSPRCSQUE estimate statistics ;
analyze index sysadm.PS_PSPRCSRQST estimate statistics ;
analyze index sysadm.PSAPSPRCSRQST estimate statistics ;
analyze index sysadm.PSBPSPRCSRQST estimate statistics ;
analyze index sysadm.PSCPSPRCSRQST estimate statistics ;
analyze index sysadm.PS_PSPRCSRQSTFILE estimate statistics ;
analyze index sysadm.PS_PSPRCSRQSTMETA estimate statistics ;
analyze index sysadm.PS_PSPRCSRQSTSTRNG estimate statistics ;
analyze index sysadm.PSAPSPRCSRQSTTEXT estimate statistics ;
analyze index sysadm.PS_PSPRCSRQSTTIME estimate statistics ;
analyze index sysadm.PS_PSPRCSRQSTXFER estimate statistics ;
analyze index sysadm.PS_PSRF_FINFO_TBL estimate statistics ;
analyze index sysadm.PS_PSRF_RATTR_TBL estimate statistics ;
analyze index sysadm.PS_PSRF_RINFO_TBL estimate statistics ;
analyze index sysadm.PS_PSRF_RSCRTY_TBL estimate statistics ;III. Partie PeopleSoft▲
III-A. Application Server▲
Cette partie va servir à configurer la connexion entre le serveur Web (et donc les utilisateurs) à la base de données. Pour la mise en œuvre, il va nous falloir créer un domaine APPSERV. Pour la création du domaine PSAPPSRV, il faut lancer psadmin avec comme répertoire courant $PS_HOME/appserv et renseigner les paramètres suivants : - Nom du domaine - Modèle de configuration (ici nous prendrons le Template Developper qui est à modifier par la suite à la main et à reconfigurer)
Command to execute (1-4, q) : 2
Please enter name of domain to create :TEST
Configuration templates:
1) developer
2) large
3) medium
4) small
Select config template number: 1
Creating domain...
Copying application server configuration files...
Using ubx template developer.ubx...
Copying Jolt repository file...
Copying Java Query client files...
Domain created.
Would you like to configure this domain now? (y/n) [y] :
----------------------------------------------
Quick-configure menu -- domain: TEST
----------------------------------------------
Features Settings
========== ==========
1) Pub/Sub Servers : No 13) DBNAME :[TEST]
2) Quick Server : No 14) DBTYPE :[ORACLE]
3) Query Servers : No 15) UserId :[QEDMO]
4) Jolt : Yes 16) UserPswd :[QEDMO]
5) Jolt Relay : No 17) DomainID :[TESTSERV]
6) PC Debugger : Yes 18) AddToPATH :[C:\Apps\DB\MSSQL\Binn]
7) Event Notification: Yes 19) ConnectID :[people]
8) MCF Servers : No 20) ConnectPswd:[peop1e]
9) Perf Collator : No 21) ServerName :[]
10) Analytic Servers : No 22) WSL Port :[7000]
23) JSL Port :[9000]
24) JRAD Port :[9100]
Actions
=========
11) Load config as shown
12) Custom configuration
h) Help for this menu
q) Return to previous menu
HINT: Enter 13 to edit DBNAME, then 11 to load
Enter selection (1-24, h, or q): 11
Loading validation table...
setting DBName=TEST
setting DBType=ORACLE
setting UserId=QEDMO
setting UserPswd=QEDMO
setting ConnectId=people
setting ConnectPswd=peop1e
setting ServerName=
setting Port=7000
setting Port=9000
setting Listener Port=9100
setting Domain ID=TESTSERV
setting Add to PATH=C:\Apps\DB\MSSQL\Binn
New CFG file written with modified Startup parameters
Log Directory entry not found in configuration file.
Setting Log Directory to the default... [PS_SERVDIR/LOGS]
Spawning disabled for server PSAPPSRV.
Configuration file successfully created.
CFG setting changes completed, loading configuration...
Domain configuration complete.Il est possible d'automatiser cela en créant le domaine en ligne de commande :
sproerp07-psoft84: /psoftsp1/appserv>psadmin -c create -d TEST -t developer
Creating domain...
Copying application server configuration files...
Using ubx template developer.ubx...
Copying Jolt repository file...
Copying Java Query client files...
Domain created.Ce qui à pour but de créer un répertoire dans $PS_HOME/appserv du nom du domaine, en l'occurrence TEST et d'y mettre les fichiers suivants :
sproerp07-psoft84: /psoftsp1/appserv/TEST>ls -ltr
total 1456
-rw-r--r-- 1 psoft84 dba 2306 Feb 20 16:06 psappsrv.val
-rw-r--r-- 1 psoft84 dba 30479 Feb 20 16:06 psappsrv.ubx
-rw-r--r-- 1 psoft84 dba 8271 Feb 20 16:06 psappsrv.psx
-rw-r--r-- 1 psoft84 dba 2668 Feb 20 16:06 opnparse.llr
-rw-r--r-- 1 psoft84 dba 15564 Feb 20 16:06 opnparse.dfa
-rw-r--r-- 1 psoft84 dba 12326 Feb 20 16:06 jrepository
-rw-r--r-- 1 psoft84 dba 9000 Feb 20 16:06 psrenconfig.txt
-rw-r--r-- 1 psoft84 dba 21137 Feb 20 16:06 psappsrv.ubb
-rw-r--r-- 1 psoft84 dba 884 Feb 20 16:06 psappsrv.env
-rw-r--r-- 1 psoft84 dba 35763 Feb 20 16:06 psappsrv.cfg
drwxr-xr-x 2 psoft84 dba 256 Feb 20 16:06 LOGS
-rw-r--r-- 1 psoft84 dba 581632 Feb 20 16:06 PSTUXCFGLe fichier principal où s'effectuent les modifications est psappsrv.cfg. Le fichier binaire issu de la reconfiguration de ce domaine est PSTUXCFG. Ensuite après avoir créé le domaine, il va nous falloir le configurer, cette étape en mode interactive, 4) Configure this domain Peux également être automatisé via une ligne de commande
sproerp07-psoft84: /psoftsp1/appserv>psadmin -c configure -d TEST
Loading UBBGEN configuration utility ...
Loading validation table...
Log Directory entry not found in configuration file.
Setting Log Directory to the default... [PS_SERVDIR/LOGS]
Spawning disabled for server PSAPPSRV.
Configuration file successfully created.
Loading new configuration...Si nous modifions une valeur dans le fichier de configuration, il nous faut reconfigurer le domaine. Un autre PSTUXCFG sera donc généré.
La reconfiguration se fait ainsi de la même manière que la configuration.
Le paramètre -c nous indique qu'il s'agit des Application serveur (il est à -p pour les process Schedulers) . La valeur après -d permet d'indiquer le domaine.
Pour pouvoir accès à l'aide sur psadmin il suffit de taper :
psadmin -hEnsuite il suffit de démarrer les Application serveur.
psadmin -c boot -d TESTUne autre méthode consiste à se connecter en mode 3 tiers, en renseignant dans le configuration manager :
- Nom du domaine : TEST
- IP ou Nom du serveur : 127.0.0.1
- Port du WSL (Workstation listener)
Si la connexion fonctionne, c'est que l'application serveur est bien configurée et démarrée.
III-B. Process Scheduler▲
La configuration des process scheduler se fait également grâce à PSADMIN en fournissant les informations suivantes :
- Base de données accédée.
- Informations de connexions et Templates
Tout comme les Applications servers, il y a un certain nombre de fichiers qui sont créés.
Mais dans le répertoire suivant : PS_HOME/appserv/prcs/DOMAINE
- psprcs.cfg
- psprcsrv.ubx
- psprcsrv.ubb
- psprcsrv.env
Ici également il existe un fichier binaire PSTUXCFG qui est généré lorsque de la configuration ou de la reconfiguration des process scheduler, qui s'effectue aisément en ligne de commande :
sproerp07-psoft84: /psoftsp1/appserv>psadmin -p configure -d TEST
Unable to open validation file! Data entry will NOT be validated!
Spawning enabled for server PSDSTSRV.
Configuration file successfully created.
CFG setting changes completed, loading configuration...
Process Scheduler Server configuration complete.Attention à ne pas lancer cette configuration lorsque les PRCS sont en marche :
Sinon vous risquez d'avoir une erreur TUXEDO :
CMDTUX_CAT:883: ERROR: tmloadcf cannot run on an active node
==============ERROR!================
Unable to load the configuration! Check the TUXEDO log for details.
==============ERROR!================Pensez donc à arrêter votre environnement :
sproerp07-psoft84: /psoftsp1/appserv>psadmin -p stop -d TEST
Shutting down all admin and server processes in /psoftsp1/appserv/prcs/PRGPRD/PSTUXCFG
Shutting down server processes ...
Server Id = 1 Group Id = MONITOR Machine = sproerp07: shutdown succeeded
Server Id = 101 Group Id = BASE Machine = sproerp07: shutdown succeeded
Server Id = 103 Group Id = BASE Machine = sproerp07: shutdown succeeded
Server Id = 102 Group Id = BASE Machine = sproerp07: shutdown succeeded
Shutting down admin processes ...
Server Id = 0 Group Id = sproerp07 Machine = sproerp07: shutdown succeeded
5 processes stopped.Une des grandes forces de PeopleSoft est d'avoir une base de données qui stocke énormément d'informations, sauf pour les SQR et les Crystal Reports. Pensez donc à mettre à jour également le répertoire des SQR et des crystaux (uniquement sur NT).
Le plus simple étant d'ajouter ces répertoires lors de la sauvegarde Oracle afin d'être sûr de les restaurer en même temps que la base.
Les sources SQR sont stockés dans le chemin PSSQR1 de la section [SQR] dans le psprcs.cfg :
[SQR]
;=========================================================================
; Settings for SQR Software
;=========================================================================
SQRBIN=%PS_HOME%/bin/sqr/%PS_DB%/bin
PSSQRFLAGS=-ZIF%PS_HOME%/sqr/pssqr%LANGUAGECD%.unx
Print Log=N
Enhanced HTML=N
PSSQR1=%PS_HOME%/PRGPRD/sqr
PSSQR2=
PSSQR3=
PSSQR4=Quant aux crystaux, le chemin est celui défini par la variable :
CRWRPTPATH=%PS_HOME%\PREPRD\CRW\Si vous utilisez des REMOTE COBOL, il faut également s'assurer de la variable : CBLBIN.
IV. WebServer▲
IV-A. Création automatique▲
Ici nous allons créer le point d'entrée de l'application. Afin d'avoir une URL où les utilisateurs vont pouvoir se connecter.
Ici comme notre configuration inclut un serveur web IBM : Websphere. Les répertoires vont être crées dans :
$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/WEB-INF/psftdocset dans :
$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/serveur: doit être remplacé par le nom du serveur.
SERVERNAME : doit être remplacé par le nom du node que l'on a créé lors de l'installation de PeopleSoft.
Voici l'écran d'accueil :
Renseignez le $PS_HOME :
Choisir le serveur Web d'installer :
Il s'agit de la variable : $WEB_HOME/AppServer
Puis il ne reste plus qu'à se laisser guider :
- Nom du domaine
- Lieu des reports
L'interface graphique peut être assez lourde à charger et assez lente.
Une autre solution consiste à lancer cet utilitaire, mais en mode console :
/psoftsp1/setup/mpinternet>./setup.aix -console
InstallShield Wizard
Initializing InstallShield Wizard...
Searching for Java(tm) Virtual Machine...
............
Welcome to the InstallShield Wizard for PeopleSoft Internet Architecture.
Using the InstallShield Wizard you will install PeopleSoft Internet
Architecture on your computer.
Version: 8.46.06
Note: If installing onto a BEA WebLogic Server, make sure to shutdown any
running web servers to avoid web server corruption.
Select Next to continue or Cancel to exit.
Press 1 for Next, 3 to Cancel or 4 to Redisplay [1]Puis se laisser guider en répondant aux diverses questions.
Un arrêt et redémarrage du webserver est obligatoire :
cd $WEB_HOME/AppServer/bin
-- Arrêt du serveur
./ stopServer.sh SERVERNAME
-- Démarrage du serveur
./ startServer.sh SERVERNAMEIV-B. Création manuelle▲
Lorsque l'on est assez à l'aise avec les webserver on peut envisager une création à « la main » des domaines WEBSERV.
Il suffit de copier un répertoire existant dans les répertoires suivants :
$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/Puis de modifier les fichiers signon.html :
La ligne suivante :
<meta HTTP-EQUIV='Refresh' CONTENT='1;
URL=../psp/NOM_DOMAINE/?cmd=login'>et dans :
$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/WEB-INF/psftdocsConfiguration.properties :
psserver=HOST :PORTIci on fait référence à l'host et au port du JSL. Il s'agit de faire la connexion entre le webserver et le serveur d'application.
Puis un arrêt - redémarrage du serveur Web est nécessaire.
Exemple de création :
$> cd $PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/
$> cp -r PROD PRGPRD
$> cd PRGPRD
$> vi signon.html
Et Modifier la ligne
<meta HTTP-EQUIV='Refresh' CONTENT='1; URL=../psp/PRGPRD/?cmd=login'>
$> cd $PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/WEB-INF/psftdocs
$> cp -r PROD PRGPRD
$> cd PRGPRD
$> vi configuration.properties
Et modifier la ligne
psserver=serveur:port







