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 documentation qui explique 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-1. Partie Oracle

Ici il s'agit essentiellement de l'identification de la base.

Dans un premier temps nous allons mettre à jour le GLOBAL NAME :

 
Sélectionnez

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
--------------------------------------------------------------------------------
PRGPRD 

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

 
Sélectionnez

SQL> SELECT dbid, name FROM v$database ; 

      DBID NAME
---------- ---------
2058528667 PRGPRD

Pour 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 contrôlfiles, donc il a besoin d'avoir monter les fichiers de données avec l'instance Oracle.

Démarrer la base en Mode Mount :

 
Sélectionnez

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 :

 
Sélectionnez

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

 
Sélectionnez

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 server 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é par NID, il convient de la redémarrer en effectuant un open resetlogs nécessaire suite à notre nouvel ID.

 
Sélectionnez

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 :

 
Sélectionnez

SQL> SELECT dbid, name FROM v$database ;

      DBID NAME
---------- ---------------------------
1942856571 PRGPRD

Bien 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-2. 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.

 
Sélectionnez

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 à quelle utilisateur appartient une base de données au sens PeopleSoft. De plus lors de la connexion, il va dire quel schéma Oracle utiliser.

 
Sélectionnez

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 indique à PeopleSoft ou trouver l'aide lorsque celle ci est installé.

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 nouvel GUID lui sera attribué.

Exemple :

 
Sélectionnez

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
--------------- ------------------------------------
PRGPRD

On redémarre les Applications servers :

 
Sélectionnez

SQL> psadmin -c boot -d PRGPRD

SQL> select shortname ,guid  from psoptions

SHORTNAME       GUID
--------------- ------------------------------------
PRGPRD          81851b12-1dd2-11b2-a520-c6a27d6b7216

Le GUID a été modifié.

Mise à jour de la PS_CDM_DIST_NODE :

 
Sélectionnez

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ù va être stocké les fichiers suite aux traitements.

 
Sélectionnez

SELECT * FROM PS_CDM_LIST 
 WHERE prcsinstance = :1

Mise à jour des Mots de passe :

Mise à jour des mots de passe utilisateurs :

Ici nous allons mettre à jour les mots de passe utilisateurs : ou 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 champs 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 :

 
Sélectionnez

$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/WEB-INF/psftdocs

Pour modifier le mot de passe du schéma (au sens Oracle) propriétaire de l'application PeopleSoft, la procédure est plus simple :

L'acces 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 :

 
Sélectionnez

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     9999999

La colonne PRCSSEQKEY recense les différentes séquences :

 
Sélectionnez

0 = Process Instance 
1 = Report Instance 
2 = Transfer Instance

Il 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 schédulere créons les index et enfin mettons à jour les statistiques :

 
Sélectionnez

--  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 soucis 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é a 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-1. Application Server

Cette partie va server à 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 )

 
Sélectionnez

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 :

 
Sélectionnez

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 :

 
Sélectionnez

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 PSTUXCFG

Le fichier principale ou s'effectue 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

 
Sélectionnez

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 server ( 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 :

 
Sélectionnez

psadmin -h

Ensuite il suffit de démarrer les application server.

 
Sélectionnez

psadmin -c boot -d TEST

Une autre méthode consiste à se connecter en mode 3 tiers, en renseignant dans le configuration manager :
- Nom du domaine : TEST
- IP ou Nom du server : 127.0.0.1
- Port du WSL (Workstation listener)

Si la connexion fonctionne, c'est que l'application server est bien configurée et démarrée.

III-2. Process Scheduler

La configuration des process schéduler 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ées.

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 :

 
Sélectionnez

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 :

 
Sélectionnez

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 :

 
Sélectionnez

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ée 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 sur 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 :

 
Sélectionnez

[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=

Quand aux crystaux, le chemin est celui définit par la variable :

 
Sélectionnez

CRWRPTPATH=%PS_HOME%\PREPRD\CRW\

Si vous utilisez des REMOTE COBOL, il faut également s'assurer de la variable : CBLBIN.

IV. WebServer

IV-1. Création automatique

Ici nous allons créer le point d'entrée de l'application. Afin d'avoir une URL ou les utilisateurs vont pouvoir se connecter.

Ici comme notre configuration inclus un serveur web IBM : Websphere. Les répertoires vont être crées dans :

 
Sélectionnez

$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/WEB-INF/psftdocs

et dans :

 
Sélectionnez

$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ée 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 :

 
Sélectionnez

/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 :

 
Sélectionnez

cd $WEB_HOME/AppServer/bin

-- Arrêt du serveur 
./ stopServer.sh SERVERNAME 

-- Démarrage du server 
./ startServer.sh  SERVERNAME

IV-2. 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 :

 
Sélectionnez

$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/

Puis de modifier les fichiers signon.html :

La ligne suivante :

 
Sélectionnez

<meta HTTP-EQUIV='Refresh' CONTENT='1; 
URL=../psp/NOM_DOMAINE/?cmd=login'>

et dans :

 
Sélectionnez

$PS_HOME/webserv/serveurNode_serveurNode_SERVERNAME/peoplesoft.ear/PORTAL/WEB-INF/psftdocs

Configuration.properties :

 
Sélectionnez

psserver=HOST :PORT

Ici 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 :

 
Sélectionnez

$> 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