Saturday, 22 July 2017

PHP OCIi 12c XAMPP Configuration


Resolve it by following these steps:
Make sure you download and install Oracle instantclient at: http://www.oracle.com/technetwork/topics/winsoft-085727.html, but note:
  1. Take note of your Oracle database version; use Version 12.1.x for Oracle Database 12c and Version 11.1.x for 11g releases.
  2. In either case, make sure you download the Basic Lite version of the Oracle instantclient.
After that, do add the location of your Oracle instantclient to your System variable Path under your Environment Variables. Do equally ensure that you have both the PHP of your xampp and its extavailable and set there as well (if not, do add them).
Then, proceed to add a new System variable with TNS_ADMIN as a variable name and the location to Oracle instantclient as the variable value.
Also, define your User variables PATH with the same the location to Oracle instantclient as value.
After this stage, restart your computer for a full propagation of the newly defined environment variables.
Once on, you may open your Windows Command Prompt and run where oci* to ensure that you had your environment variables well defined; the response should look like this:
C:\Users\flex>where oci*

C:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.sym
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ociw32.dll
C:\instantclient_11_2\oci.dll
C:\instantclient_11_2\oci.sym
C:\instantclient_11_2\ocijdbc11.dll
C:\instantclient_11_2\ocijdbc11.sym
C:\instantclient_11_2\ociw32.dll
C:\instantclient_11_2\ociw32.sym
If not, you must have missed something and need to revisit the process, ensuring to completing it effectively.
You may now proceed to your php.ini file (provided environment variables are well defined) and enable your oci extensions (php_oci8.dll and php_oci8_11g.dll) by uncommenting them; you can achieve that by simply removing the semi column (;) before the said extensions.
Do remember to save your php.ini file, then, restart or start your Apache if it isn't already running.
To check your PHP oci8 configurations are enabled, you may go back to your Windows Command Prompt and run: php --ri oci8; the response should be similar to the one below:
C:\Users\flex>php --ri oci8

OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.1
Revision => $Id: 86f22a208f89dcd5b305e82929a7429683968b11 $
Oracle Run-time Client Library Version => 11.2.0.4.0
Oracle Compile-time Instant Client Version => 10.2

Directive => Local Value => Master Value
oci8.max_persistent => -1 => -1
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
oci8.default_prefetch => 100 => 100
oci8.old_oci_close_semantics => Off => Off
oci8.events => Off => Off

Statistics =>
Active Persistent Connections => 0
Active Connections => 0
Alternatively, you can create a PHP file with as<?php phpinfo(); ?> content, then open it in your browser and search for oci8 occurrences; it should show enabled there as well.

Saturday, 1 April 2017

Workforce 17.x Certificate Installation Procedure.

1) Create a Certificate Request

keytool -genkeypair -v -alias '<hostname>' -keyalg 'RSA' -keysize 2048 -validity 1825 -keystore '/u01/wforce/TST/17.0/workforce.keystore' -storepass <password>

CN = <hostname> -> use the servername as CN (important)
OU = OrgUnit
O = Org
L = Altamonte
S = Florida
C = US

2) Generate NEW CSR Request
keytool -certreq -alias '<hostname>' -keystore '/u01/wforce/TST/17.0/workforce.keystore' -storepass <password>

-----BEGIN NEW CERTIFICATE REQUEST-----

4Q3Jxb63U9VMpqjGwU54o1cX6sJOpWgpxT5cpgP9tkf8ovV0jmvE3XhGztG1qDlYyov2J8/fMySJ
EUkC8nIKJHV9O/yM0jHZnhpjn1b+dwq8lE92sGz1DDNBDFJp73tnV3OgqOIn12wTro70wpHrao/h
t5LrmRfngtvt+6Bpsa/V7KOpCTXyYKe/OLcYB5r4OsliPUoNijXoIO+018U/3GwW7KP+NYc=
-----END NEW CERTIFICATE REQUEST-----

Once you have this key, save this to notepad and request for a signed key to   (Create a Service Request)

3) These are the intermediate certificates mandatory for your organization to be imported

keytool -importcert -alias 'ahsca' -keystore '/u01/wforce/TST/17.0/workforce.keystore' -storepass <password> -file '/u01/wforce/TST/17.0/newAffirmTrust_OV1.cer'
keytool -importcert -alias 'AffirmTrustOV1' -keystore '/u01/wforce/TST/17.0/workforce.keystore' -storepass <password> -file '/u01/wforce/TST/17.0/newAffirmTrust_OV1.cer'

4) Once you have the signed key from Step 2. Use the following command to import the key into Keystore

keytool -importcert -alias '<hostname>' -keystore '/u01/wforce/TST/17.0/workforce.keystore' -storepass <password> -file '/u01/wforce/TST/17.0/<hostname>.p7b'

5) Once you have the key imported. Use the following command to convert the signed key into PK12 format as workforce will need to be in this format

keytool -importkeystore -srckeystore '/u01/wforce/TST/17.0/workforce.keystore' -destkeystore '/u01/wforce/TST/17.0/<hostname>.p12' -srcstoretype JKS -deststoretype PKCS12 -srcalias 'lkmvwtabsdev21' -srcstorepass <password> -srckeypass <password> -deststorepass <password>

6) Use the ant command to import the certificate back in the keystore

./ant importTomcatCertificate -Dcertificate.file=/u01/wforce/TST/17.0/<hostname>.p12 -Dcertificate.pass=<password> -Dkeystore.alias=<hostname>


7) Important Step.

cat /u01/wforce/TST/17.0/catalina_base/conf/server.xml |grep keyAlias -A2 -B2

     keystoreFile="/u01/wforce/TST/17.0/workforce.keystore"
     keystorePass="<password>" algorithm="SunX509"
            keyAlias="<hostname>"                         <---- Change to <hostname> as shown
            compression="on"
            compressionMinSize="2048"

8) bounce back the Empcenter Services

/u01/wforce/TST/17.0/wfsctl restart



Thursday, 23 June 2016

New Load Balancer Testing for PeopleSoft.



New Load Balancer Testing for PeopleSoft.

siege -c255  "http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login POST userid=PS&pwd=PS"

HTTP/1.1 200   4.72 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   4.73 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   4.80 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   4.82 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   4.85 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   4.83 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   5.56 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   4.98 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   4.95 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login
HTTP/1.1 200   5.00 secs:    2179 bytes ==> POST http://hrdmo.ps.com:16000/psp/hrdmo/?cmd=login


help to do load testing for PeopleSoft applications











Thursday, 21 January 2016

RMAN Database Backup Script.

00 18 * * 6  nohup /home/oracle/scripts/backupscripts/backup_script_v5.ksh FSPRD 0 8 "/backups" "Emailid@domain.com" >> /tmp/FSPRD_nohup_rmanrun.log 1>&2 &

#!/bin/ksh
set -xv
export DB_NAME=$1;
export BKP_LEVEL=$2;
export PARALLEL=$3;
export FOLDER_PATH=$4;
export DBA_EMAIL="$5";
export PROCESS_NUMBER=$$;
mkdir -p "${FOLDER_PATH}/rman/${DB_NAME}/BACKUPS/LOGS/";
ORACLE_HOSTNAME=xyz; export ORACLE_HOSTNAME
ORACLE_UNQNAME=$DB_NAME; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=$DB_NAME; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
LOG_DATE=`date +%d%m%Y`
LOGFILE="${FOLDER_PATH}/rman/$DB_NAME/BACKUPS/LOGS/${ORACLE_UNQNAME}_${PROCESS_NUMBER}_LEVEL${BKP_LEVEL}_`date +%d%m%Y`.log"
TRACEFILE="${FOLDER_PATH}/rman/$DB_NAME/BACKUPS/LOGS/${ORACLE_UNQNAME}_${PROCESS_NUMBER}_LEVEL${BKP_LEVEL}_TRACE_`date +%d%m%Y`.trc"
TIMETRACKER="${FOLDER_PATH}/rman/$DB_NAME/BACKUPS/LOGS/${ORACLE_UNQNAME}_${PROCESS_NUMBER}_TIME_TRACK_L${BKP_LEVEL}_`date +%d%m%Y`.log"

echo -e "  ${ORACLE_UNQNAME} LEVEL ${BKP_LEVEL} BACKUP START AND END TIME DETAILS" > $TIMETRACKER
echo  "====================================================" >> $TIMETRACKER
date >>$TIMETRACKER
rman target / catalog RMANCAT/<PASSWORD>@RMANDB USING $DB_NAME $BKP_LEVEL $PARALLEL "'$FOLDER_PATH'" trace=$TRACEFILE log=$LOGFILE <<EOF
run {
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '&4/rman/&1/BACKUPS/&1_snapshot_ctrl_file.ctl';
crosscheck backup;
crosscheck archivelog all;
CONFIGURE DEVICE TYPE DISK PARALLELISM &3 BACKUP TYPE TO BACKUPSET;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '&4/rman/&1/BACKUPS/L&2_%T_%d_%s_%p_%U';
backup incremental level &2 device type disk as compressed backupset database tag = 'weekly0';
sql 'alter system archive log current';
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '&4/rman/&1/BACKUPS/&2_ARCH_%T_%d_%s_%p_%U';
backup device type disk as compressed backupset archivelog all delete input tag L&2_ARCHIVE_LOGS;
delete noprompt obsolete device type disk;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '&4/rman/&1/BACKUPS/&2_CNTL_%T_%d_%s_%p_%U';
backup current controlfile tag L&2_CNT_FILE_BKP;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '&4/rman/&1/BACKUPS/&2_SPFILE_%T_%d_%s_%p_%U';
backup spfile tag L&2_SP_FILE_BKP;
}
EOF

date >> $TIMETRACKER
echo -e "\n====================================================\n\n" >> $TIMETRACKER
echo -e "\n  HISTORICAL RMAN BACKUP DETAILS " >> $TIMETRACKER
echo -e "====================================================\n" >> $TIMETRACKER
sqlplus -s \"/ as sysdba\"  @/home/oracle/scripts/backupscripts/rman_backup_info.sql >> $TIMETRACKER
echo -e "\n====================================================\n\n" >> $TIMETRACKER

echo -e "  ORA- ERROR DETAILS If ANY? " >> $TIMETRACKER
echo -e "====================================================\n" >> $TIMETRACKER
cat $TRACEFILE | grep ORA-  >> $TIMETRACKER
echo -e "====================================================\n\n" >> $TIMETRACKER

echo -e "  FEW LINES of LOG FILE " >> $TIMETRACKER
echo -e "====================================================\n" >> $TIMETRACKER
tail -20 $TRACEFILE >> $TIMETRACKER
echo -e "====================================================\n\n" >> $TIMETRACKER

error_count=$(cat $TRACEFILE | grep ORA- | wc -l);
if  [ $error_count -gt 0 ]; then
        mailx -s "RMAN Level ${BKP_LEVEL} BACKUP FAILED FOR $DB_NAME ${LOG_DATE}" -r noreply@domain.com  ${DBA_EMAIL} < $TIMETRACKER
else
        mailx -s "RMAN Level ${BKP_LEVEL} BACKUP SUCCESS FOR $DB_NAME ${LOG_DATE}" -r noreply@domain.com  ${DBA_EMAIL} < $TIMETRACKER
        cp /backups/rman/FSPRD/BACKUPS/*CNTL* /backups/rman/FSPRD/BACKUPS/CNTLFILESAVE/
        find /backups/rman/FSPRD/BACKUPS/CNTLFILESAVE/ -name '*CNTL*' -type f -mtime +30 -exec rm {} \;
        nohup sh -xv /home/oracle/scripts/syncdrincr.ksh 1>&2 > /tmp/trace_dr_backups.log &
fi

exit

Monday, 21 December 2015

Following are the steps bringing the latest security, trees and queries after peoplesoft upgrade (CutOver Time)





Following are the steps bringing the latest security,trees and queries.

Step 1: Backed up all the tables related to query and trees using data mover.

SET LOG C:\Temp\Test.log;
SET OUTPUT C:\Temp\QRY_TREE.dat
EXPORT PSQRYDEFN ;
EXPORT PSQRYEXPR ;
EXPORT PSQRYDEFNLANG ;
EXPORT PSQRYRECORD ;
EXPORT PSQRYSELECT ;
EXPORT PSQRYBIND ;
EXPORT PSQRYBINDLANG ;
EXPORT PSQRYCRITERIA ;
EXPORT PSQRYFIELD ;
EXPORT PSQRYFIELDLANG ;
EXPORT PSQRYLINK ;
EXPORT PSTREEDEFN;
EXPORT PSTREEBRANCH;
EXPORT PSTREELEAF;
EXPORT PSTREELEVEL;
EXPORT PSTREENODE;

SET LOG C:\Temp\Test_Imp.log;
SET INPUT C:\Temp\QRY_TREE.dat
IMPORT PSQRYDEFN AS PSQRYDEFN_89;
IMPORT PSQRYEXPR AS PSQRYEXPR_89;
IMPORT PSQRYDEFNLANG AS PSQRYDEFNLANG_89;
IMPORT PSQRYRECORD AS PSQRYRECORD_89;
IMPORT PSQRYSELECT AS PSQRYSELECT_89;
IMPORT PSQRYBIND AS PSQRYBIND_89;
IMPORT PSQRYBINDLANG AS PSQRYBINDLANG_89;
IMPORT PSQRYCRITERIA AS PSQRYCRITERIA_89;
IMPORT PSQRYFIELD AS PSQRYFIELD_89;
IMPORT PSQRYFIELDLANG AS PSQRYFIELDLANG_89;
IMPORT PSQRYLINK AS PSQRYLINK_89;
IMPORT PSTREEDEFN AS PSTREEDEFN_89;
IMPORT PSTREEBRANCH AS PSTREEBRANCH_89;
IMPORT PSTREELEAF AS PSTREELEAF_89;
IMPORT PSTREELEVEL AS PSTREELEVEL_89;
IMPORT PSTREENODE AS PSTREENODE_89;


Step 2: Llet the upgrade complete patching / Tax updates.

Step 3: Import additional missing Queries and Trees.

INSERT INTO PSQRYDEFN SELECT * FROM PSQRYDEFN_89 WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYDEFN);
INSERT INTO PSQRYRECORD SELECT OPRID, QRYNAME, SELNUM, RCDNUM, RECNAME, JOINTYPE, JOINRCDNUM, JOINFLDNUM, CORRNAME, ' ' FROM PSQRYRECORD_89  WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYRECORD);
INSERT INTO PSQRYSELECT SELECT * FROM PSQRYSELECT_89  WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYSELECT);
INSERT INTO PSQRYBIND SELECT * FROM PSQRYBIND_89 WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYBIND);
INSERT INTO PSQRYBINDLANG SELECT * FROM PSQRYBINDLANG_89 WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYBINDLANG);
INSERT INTO PSQRYCRITERIA SELECT * FROM PSQRYCRITERIA_89 WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYCRITERIA);
INSERT INTO PSQRYFIELD SELECT * FROM PSQRYFIELD_89 WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYFIELD);
INSERT INTO PSQRYFIELDLANG SELECT * FROM PSQRYFIELDLANG_89 WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYFIELDLANG);
INSERT INTO PSQRYLINK SELECT * FROM PSQRYLINK_89 WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYLINK);
INSERT INTO PSQRYEXPR SELECT * FROM PSQRYEXPR_89 WHERE QRYNAME NOT IN (SELECT QRYNAME FROM PSQRYEXPR);


insert into PSTREEDEFN (SELECT SETID, ' ' SETCNTRLVALUE, TREE_NAME, EFFDT, EFF_STATUS, VERSION, TREE_STRCT_ID, DESCR, ALL_VALUES, USE_LEVELS, VALID_TREE, LEVEL_COUNT, NODE_COUNT, LEAF_COUNT, TREE_HAS_RANGES, DUPLICATE_LEAF, TREE_CATEGORY, TREE_ACC_METHOD, TREE_ACC_SELECTOR, TREE_ACC_SEL_OPT, NULL LASTUPDDTTM, ' ' LASTUPDOPRID, ' ' TREE_IMAGE, ' ' BRANCH_IMAGE, ' ' NODECOL_IMAGE, ' ' NODEEXP_IMAGE, ' ' LEAF_IMAGE  FROM PSTREEDEFN_89
WHERE (SETID, TREE_NAME) NOT IN (SELECT SETID, TREE_NAME FROM PSTREEDEFN));

insert into PSTREEBRANCH (SELECT SETID, ' ' SETCNTRLVALUE, TREE_NAME, EFFDT, TREE_BRANCH, VERSION, PARENT_BRANCH, BRANCH_LEVEL_NUM, PARENT_NODE_NUM, TREE_LEVEL_NUM, TREE_NODE_NUM, TREE_NODE_NUM_END, NODE_COUNT, LEAF_COUNT, ' ' BRANCH_IMAGE FROM PSTREEBRANCH_89
WHERE (SETID, TREE_NAME, TREE_BRANCH) NOT IN (SELECT SETID, TREE_NAME, TREE_BRANCH FROM PSTREEBRANCH));

insert into pstreeleaf (SELECT SETID, ' ' SETCNTRLVALUE, TREE_NAME, EFFDT, TREE_NODE_NUM,  TREE_BRANCH, RANGE_FROM, RANGE_TO, DYNAMIC_RANGE, OLD_TREE_NODE_NUM, ' ' LEAF_IMAGE FROM PSTREELEAF_89
WHERE (SETID, TREE_NAME,  RANGE_FROM, RANGE_TO, TREE_BRANCH) NOT IN (SELECT SETID, TREE_NAME,  RANGE_FROM, RANGE_TO, TREE_BRANCH FROM PSTREELEAF));

insert into PSTREELEVEL (SELECT SETID, ' ' SETCNTRLVALUE, TREE_NAME, EFFDT, TREE_LEVEL, TREE_LEVEL_NUM, ALL_VALUES FROM PSTREELEVEL_89
WHERE (SETID, TREE_NAME, TREE_LEVEL) NOT IN (SELECT SETID, TREE_NAME, TREE_LEVEL FROM PSTREELEVEL));

insert into PSTREENODE (SELECT SETID, ' ' SETCNTRLVALUE, TREE_NAME, EFFDT, TREE_NODE_NUM, TREE_NODE, TREE_BRANCH, TREE_NODE_NUM_END, TREE_LEVEL_NUM, TREE_NODE_TYPE, PARENT_NODE_NUM, ' ' PARENT_NODE_NAME, OLD_TREE_NODE_NUM, ' ' NODECOL_IMAGE, ' ' NODEEXP_IMAGE FROM PSTREENODE_89
WHERE (SETID, TREE_NAME,  TREE_NODE, TREE_BRANCH) NOT IN (SELECT SETID, TREE_NAME, TREE_NODE, TREE_BRANCH FROM PSTREENODE));



Step 4 :
Security
Export:
SET LOG C:\TEMP\USER_PROFILES_C2.LOG;
SET OUTPUT C:\TEMP\USER_PROFILES_C2.DAT;
EXPORT PSOPRDEFN WHERE OPRID IN ('VN93552','VN93474','VN95541');
EXPORT PSOPRALIAS WHERE OPRID IN ('VN93552','VN93474','VN95541');
EXPORT PSROLEUSER WHERE ROLEUSER IN ('VN93552','VN93474','VN95541');
EXPORT PSUSERATTR WHERE OPRID IN ('VN93552','VN93474','VN95541');
EXPORT PSUSEREMAIL WHERE OPRID IN ('VN93552','VN93474','VN95541');
EXPORT PSUSERPRSNLOPTN WHERE OPRID IN ('VN93552','VN93474','VN95541');
EXPORT PS_ROLEXLATOPR WHERE ROLEUSER IN ('VN93552','VN93474','VN95541');
EXPORT PS_RTE_CNTL_RUSER WHERE ROLEUSER IN ('VN93552','VN93474','VN95541');

Import:
SET LOG C:\TEMP\USER_PROFILES_C2_IMPORT.LOG;
SET INPUT C:\TEMP\USER_PROFILES_C2.DAT;
SET UPDATE DUPS;
Import *;


REN FIX

 
FDEV92 Refresh


select * from PSREN;
select * from PSMCFRENURLID;
delete from PSREN;
delete from PSMCFRENURLID;
SELECT * FROM PSMCFRENURLID;
--UPDATE PSMCFRENURLID SET MCFREN_URL_ID = 'RENCLSTR_0001', MCFREN_INT_URL='http://vmpsfina1:8190', MCFREN_BROWSER_URL='http://vmpsfina1.corp.top.wr.com:8190' WHERE MCFREN_URL_ID='RENCLSTR_0008';