Unable to load Sfix.ini file: java.io.FileNotFoundException: 22644310\sfix.ini (The system cannot find the path specified)

Configuration file CDXPatch.ini should only include patch IDs to be applied.

SITUATION

Trying to apply the following two patches onto ORMB database, got the error.

08/08/2017 11:52 AM <DIR> 20986229
02/04/2016 04:11 AM <DIR> 22329775
Directory of D:\PATCHES\V4.3.0.1.0-25963443_MultiPlatform\FW.V4.3.0.1.0-25963443\prereqpatches\RollupPack\FW\Database

08/08/2017 11:52 AM <DIR> .
08/08/2017 11:52 AM <DIR> ..
08/08/2017 11:52 AM <DIR> 20986229
02/04/2016 04:11 AM <DIR> 22329775
08/08/2017 11:52 AM 63 CDXPatch.ini
17/05/2016 08:33 PM 1,117 IgDbErr
17/05/2016 08:33 PM 5,115 ouafDatabasePatch.cmd
17/05/2016 08:33 PM 3,846 ouafDatabasePatch.sh
 4 File(s) 10,141 bytes
 4 Dir(s) 26,984,898,560 bytes free

D:\PATCHES\V4.3.0.1.0-25963443_MultiPlatform\FW.V4.3.0.1.0-25963443\prereqpatches\RollupPack\FW\Database>ouafDatabasePatch.cmd
"CMDLINE::: d:\java\bin\java.exe -cp D:\dbpatch_tools\lib\*;D:\dbpatch_tools\config com.oracle.ouaf.database.patch.OUAFPatch "

Folder for 22644310 is missing
File 22644310\sfix.ini is missing
File 22644310\CDXPatch.lang is missing
Folder for 21133947 is missing
File 21133947\sfix.ini is missing
File 21133947\CDXPatch.lang is missing
Folder for 22244788 is missing
File 22244788\sfix.ini is missing
File 22244788\CDXPatch.lang is missing
Folder for 23201172 is missing
File 23201172\sfix.ini is missing
File 23201172\CDXPatch.lang is missing
Folder for 23194604 is missing
File 23194604\sfix.ini is missing
File 23194604\CDXPatch.lang is missing
Unable to load Sfix.ini file: java.io.FileNotFoundException: 22644310\sfix.ini (The system cannot find the path specified)

INVESTIGATION

Configuration file CDXPatch.ini includes other patch ids:

20986229
22329775
21133947
22244788
22644310
23194604
23201172

SOLUTION

Edit configuration file CDXPatch.ini to include the right patch ids which will be applied onto ORMB database.

20986229
22329775

...
..
.

Applying 22329775 ...

Writing to log file: ORMB_DEV001\log22329775.log

-----------------------------------------------------------

--Applying patch 22329775 at 08-09-2017 14:29:10using $LastChangedRevision: 42479 $

---------------------------------------------------------------

--Copying language information

-----------------------------------------------------------

--Patch 22329775 applied successfully at 08-09-2017 14:29:11

Patch applied successfully..

How to Apply Database Component Of a Patch Onto ORMB Database

Always make a backup of CISADM schema or whole database before applying database component of a patch onto ORMB database.

Here is an example of applying an ORMB patch onto ORMB Oracle database.  There working environment is as below ;

Oracle Database 12c
Oracle Client 32bit 12c
ORMB 2.5.0.3
JDK 8

Before applying patching, make a backup of database in any way you prefer:

Set the environment variables:

C:\>set TNS_ADMIN=d:\oracle
C:\>set TOOLSBIN=d:\dbpatch_tools\bin
C:\>set JAVA_HOME=d:\java

Ensure to be able to connect to the database from the application server workstation:

C:\>tnsping ormb
TNS Ping Utility for 32-bit Windows: Version 12.1.0.2.0 - Production on 13-JAN-2017 10:19:11
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
d:\oracle\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ractest-scan.ractest)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVIC
E_NAME = ORMB)))
OK (10 msec)

Unzip the patch files, change to the CDXPatch directory and execute the ouafDatabasePatch.cmd utility. The utility will prompt you for the value of the following parameters:

if it prompts you for the target database type, enter O for Oracle.
Enter the username that owns the schema (e.g., CISADM)
The password for the user (in silent mode)(e.g., XXXXXXX)
Enter the name of the Oracle Database Connection String : //ractest-scan.ractest:1521/ORMB

Below is the output from applying patch 25054594 ( with three child patches -24586912, 24604908, 24963398  ).

D:\PATCHES\p25054594_25030\MultiPlatform\V2.5.0.3.0-25054594_MultiPlatform\database\ORACLE\CDXPatch>ouafDatabasePatch.cmd
"CMDLINE::: d:\java\bin\java.exe -cp d:\dbpatch_tools\lib\*;d:\dbpatch_tools\config com.oracle.ouaf.database.patch.OUAFPatch "
Enter the target database type (O/M/D) [O]: O
Enter the username that owns the schema: CISADM
Enter the password for the CISADM user: XXXXXXX
Enter the name of the Oracle Database Connection String: //ractest-scan.ractest:1521/ORMB
Target Schema is a Production Schema
Ready to process patches, Do you want to continue? (Y/N): Y
Working Directory: ORMB001
***********************************
Setting up language file: ORMB001\CDXPatch.lang
exit value: 0

Applying 24586912 ...
Writing to log file: ORMB001\log24586912.log
-----------------------------------------------------------
--Applying patch 24586912 at 01-13-2017 14:20:49using $LastChangedRevision: 42479 $
---------------------------------------------------------------
--Copying language information
-----------------------------------------------------------
--Patch 24586912 applied successfully at 01-13-2017 14:21:20
---------------------------------------------------------------

Applying 24604908 ...
Writing to log file: ORMB001\log24604908.log
-----------------------------------------------------------
--Applying patch 24604908 at 01-13-2017 14:21:20using $LastChangedRevision: 42479 $
---------------------------------------------------------------
--Copying language information
-----------------------------------------------------------
--Patch 24604908 applied successfully at 01-13-2017 14:21:31
---------------------------------------------------------------

Applying 24963398 ...
Writing to log file: ORMB001\log24963398.log
-----------------------------------------------------------
--Applying patch 24963398 at 01-13-2017 14:21:31using $LastChangedRevision: 42479 $
---------------------------------------------------------------
--Copying language information
-----------------------------------------------------------
--Patch 24963398 applied successfully at 01-13-2017 14:21:31
---------------------------------------------------------------
Patch applied successfully...

Check the successful installations of the patches as per How to Check the Successful Installation of a Database Patch Onto ORMB Database

We can see only the child patches ( 24586912, 24604908, 24963398 ) are stored in repository. The parent patch ID is NOT installed into database patch repository )

SQL>  select sr_no,run_status_flg,END_DTTM 
        from cisadm.ci_ut_instl 
       where sr_no in ( '25054594','24586912','24604908','24963398') 
         and run_status_flg = '02' 
         and END_DTTM IS Not NULL;

SR_NO                          RU END_DTTM
----------------               -- ---------
24586912                       02 13-JAN-17
24604908                       02 13-JAN-17
24963398                       02 13-JAN-17

Finally run Security utility as per How to Run Security Utility in ORMB Multiple Instances Environment

How to Install Database Component of a Patch onto ORMB Database

Since de-installation of the patch is not supported, DBA should develop a backup/recovery strategy before applying ORMB patches in case rollback is required.

Be aware of the below warning when applying database component of a patch onto ORMB database.

Warning: De-installation of the patch is not supported. Make sure that you have a backup of the database schema you are installing into. It is recommended that you first install and test patches on a non-production environment.

DBA should develop a backup/recovery strategy before applying ORMB patches in case rollback is required if patching fails. The suggested backup strategy could be either of the below:

The following is a practical example of applying patch 25187694 onot ORMB 2.5.0.3.0 from a different server other than an application server.

1)Create Database Patching Utility

Ask ORMB application server administrator to run “createDBStandlone.sh” to create a jar file called “db_patch_standalone.jar”.

2) Copy and Cecompress Database Patching Utility

D:\dbpatch_tools
 config
         log4j.properties
 bin
         ouafDatabasePatch.sh
         ouafDatabasePatch.cmd
 lib
         commons-cli-1.1.jar
         commons-codec-1.6
         commons-collections-3.2.1
         commons-io-1.3.2
         log4j-1.2.17
         ojdbc7-12.1.0.2
         spl-dbpatch-4.3.0.1.0
         spl-shared-4.3.0.1.0

3) Set Windows Environment Variables

set TNS_ADMIN=D:\oracle
set JAVA_HOME=D:\java
set TOOLSBIN=D:\dbpatch_tools\bin

4)  Apply Database Component of  the Patch

D:\PATCHES\p25187694_25030_PDEV\MultiPlatform\V2.5.0.3.0-25187694_MultiPlatform\database\ORACLE\CDXPatch>ouafDatabasePatch.cmd
"CMDLINE::: d:\java\bin\java.exe -cp d:\dbpatch_tools\lib\*;d:\dbpatch_tools\config com.oracle.ouaf.database.patch.OUAFPatch "

Enter the target database type (O/M/D) [O]: O
Enter the username that owns the schema: cisadm
Enter the password for the cisadm user:
Enter the name of the Oracle Database Connection String: //RACTEST-SCAN.ractest.local:1521/ORMB

Target Schema is a Production Schema
Ready to process patches, Do you want to continue? (Y/N): Y

Working Directory: ORMB001
***********************************
Setting up language file: ORMB001\CDXPatch.lang
exit value: 0

Applying 25187694 ...
Writing to log file: ORMB001\log25187694.log
-----------------------------------------------------------
--Applying patch 25187694 at 12-08-2016 15:31:50using $LastChangedRevision: 42479 $
---------------------------------------------------------------
--Copying language information
-----------------------------------------------------------
--Patch 25187694 applied successfully at 12-08-2016 15:31:52
---------------------------------------------------------------
Patch applied successfully..
Enter a comma-separated list of Oracle users in which synonyms need to be created (e.g. CISUSER,CISREAD): CISUSER,CISREAD
Enter a database role which has a read-write privilege (e.g. CIS_USER): CIS_USER
Enter a database role which has a read only privilege (e.g. CIS_READ): CIS_READ
Generating Security ...
-----------------------------------------------------------
--Security is successfully applied at 12-08-2016 15:37:54
---------------------------------------------------------------
D:\PATCHES\p25187694_25030_PDEV\MultiPlatform\V2.5.0.3.0-25187694_MultiPlatform\database\ORACLE\CDXPatch>

5)  Review Patch Log File Including Security Generation Log

capture

—  log25187694

--Applying patch 25187694 at 12-08-2016 15:31:50using $LastChangedRevision: 42479 $
---------------------------------------------------------------
--Copying language information 
insert into ci_ut_instl(instl_log_id,target_ver_id,upg_count,prev_ver_id,start_dttm,run_status_flg,sr_no,owner_flg) values ( 51, 'V2.5.0.3.0', 1, 'V2.5.0.3.0', sysdate, '00', '25187694', 'C1' )
;
--Executed Successfully ...
COMMIT
;

--Executed Successfully ...
INSERT INTO CI_UT_INSTL_DTL(INSTL_LOG_ID,SEQ_NUM,SCRIPT_FILE_NAME,START_DTTM,RUN_STATUS_FLG,OWNER_FLG) VALUES ( 51, 1, '25187694_RS1.SQL', sysdate, '00', 'C1' )
;
--Executed Successfully ...
COMMIT
;

-- RUNNING SCRIPTS HERE
....
...
..
.

--Executed Successfully ...
COMMIT
;

--Executed Successfully ...
UPDATE CI_UT_INSTL_DTL SET END_DTTM=sysdate, RUN_STATUS_FLG='02' WHERE INSTL_LOG_ID=51 AND SEQ_NUM = 1
;
--Executed Successfully ...
COMMIT
;

--Executed Successfully ...
UPDATE CI_UT_INSTL SET END_DTTM=sysdate, RUN_STATUS_FLG='02' WHERE INSTL_LOG_ID=51
;
--Executed Successfully ...
COMMIT
;

--Executed Successfully ...
-----------------------------------------------------------
--Patch 25187694 applied successfully at 12-08-2016 15:31:52
---------------------------------------------------------------

6) Check the Patch has been Applied Successfully

Check the patch status as per How to Check the Successful Installation of a Database Patch Onto ORMB Database

SQL> select sr_no,run_status_flg,END_DTTM 
       from cisadm.ci_ut_instl 
      where sr_no in ( '25187694') 
        and run_status_flg = '02' 
        and END_DTTM IS Not NULL;

SR_NO     RU   END_DTTM
--------- --  -------------------
25187694  02   20161208-15:31:52

Install Oracle Revenue Management and Billing ( ORMB ) 2.5.0.3.0 Database

Here are the practical steps of installing Oracle Revenue Management and Billing ( ORMB ) 2.5.0.3.0 Database in RAC environment.

Mandatory Software Binaries List

Oracle Database Enterprise Edition 12.1.0.2
Oracle Database Client 32bit - 12.1.0.2
JDK 1.7 or JDK 1.8
7-zip file manager or any other zip tools
Oracle Revenue Management and Billing 2.5.0.3.0 ( p24445559_25030_Generic.zip )

STEP 1: Install Java jdk-8u112-windows-x64

Download and install ( jdk-8u112-windows-x64.zip ). Do not install in default C:\Program Files. It will cause issues later when installing ORMB due to space in path “Program Files”

Otherwise, we can copy “C:\Program Files\Java\jdk1.8.0_112” to “D:\RMB\jdk1.8.0_112” as JAVA_HOME.

STEP 2: Install Oracle 32bit client

Download “winx64_12102_client.zip” and install it on to Windows. You might get errors as per “INS-20802 Oracle Net Configuration Assistant Failed When Install 12c 32bit Oracle Client on Windows Server 2012 R2

STEP 3: Install 7-zip onto to Windows

It is for unzip “p24445559_25030_Generic.zip”. Otherwise we will get “path too long” errors for some files.

STEP 4: Create Oracle Database 12.1.0.2

Create a database with AL32UTF8 charactor set. Here is the details of how to “Manually Create a Container Database (CDB) With Selected Options

Make sure the mandatory options installed:

  • Oracle Spatial OR Oracle Locator
  • Oracle Text

Run below sql query to verify the above mandatory software options are enable.

SQL>SELECT COMP_NAME, STATUS FROM DBA_REGISTRY WHERE COMP_NAME IN ('Spatial','Oracle Text');

COMP_NAME         STATUS
---------------- --------------------------------------------
Oracle Text       VALID
Spatial           VALID

Step 5: Create tablesapce

SQL>CREATE BIGFILE TABLESPACE CISTS_01 DATAFILE '+DG1' SIZE 10G AUTOEXTEND ON NEXT 1G MAXSIZE 1024G LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT COMPRESS FOR ADVANCED;

Step 6: Create Users and Roles

SQL> CREATE ROLE CIS_USER;
Role created.

SQL> CREATE ROLE CIS_READ;
Role created.

SQL> CREATE USER CISADM IDENTIFIED BY CISADM DEFAULT TABLESPACE CISTS_01 TEMPORARY TABLESPACE TEMP PROFILE DEFAULT;
User created.

SQL> GRANT UNLIMITED TABLESPACE TO CISADM WITH ADMIN OPTION;
Grant succeeded.

SQL> GRANT SELECT ANY TABLE TO CISADM;
Grant succeeded.

SQL> GRANT CREATE DATABASE LINK TO CISADM;
Grant succeeded.
 
SQL> GRANT CONNECT TO CISADM;
Grant succeeded.

SQL> GRANT RESOURCE TO CISADM;
Grant succeeded.

SQL> GRANT DBA TO CISADM WITH ADMIN OPTION;
Grant succeeded.

SQL> GRANT CREATE ANY SYNONYM TO CISADM;
Grant succeeded.

SQL> GRANT SELECT ANY DICTIONARY TO CISADM;
Grant succeeded.

SQL> CREATE USER CISUSER PROFILE DEFAULT IDENTIFIED BY CISUSER DEFAULT TABLESPACE CISTS_01 TEMPORARY TABLESPACE TEMP;
User created.

SQL> GRANT SELECT ANY TABLE TO CISUSER;
Grant succeeded.

SQL> GRANT CIS_USER TO CISUSER;
Grant succeeded.

SQL> GRANT CIS_READ TO CISUSER;
Grant succeeded.

SQL> GRANT CONNECT TO CISUSER;
Grant succeeded.

SQL> CREATE USER CISOPR PROFILE DEFAULT IDENTIFIED BY OPRPLUS DEFAULT TABLESPACE CISTS_01 TEMPORARY TABLESPACE TEMP;
User created.

SQL> GRANT CONNECT,RESOURCE,EXP_FULL_DATABASE TO CISOPR;
Grant succeeded.

SQL> CREATE USER CISREAD IDENTIFIED BY CISREAD DEFAULT TABLESPACE CISTS_01 TEMPORARY TABLESPACE TEMP;
User created.

SQL> GRANT SELECT ANY TABLE TO CISREAD;
Grant succeeded.

SQL> GRANT CIS_READ TO CISREAD;
Grant succeeded.

SQL> GRANT CONNECT TO CISREAD;
Grant succeeded.

Step 7: Create a Dedicated Service 

$ srvctl add service -db RACTEST -service ORMB -preferred "RACTEST1,RACTEST2" -available "RACTEST3,RACTEST4" -tafpolicy BASIC -role primary -failovertype SELECT -failovermethod BASIC -pdb RACTESTPDB -clbgoal LONG -rlbgoal THROUGHPUT

$ srvctl status service -db RACTEST -service ORMB
 Service ORMB is not running.

$ srvctl start service -db RACTEST -service ORMB

$ srvctl status service -db RACTEST -service ORMB
 Service ORMB is running on instance(s) RACTEST1,RACTEST2

Step 8: Copy and Unzip ORMB  2.5.0.3.0 package.

Copy ORMB  2.5.0.3.0 patch files ( p24445559_25030_Generic.zip ) onto Windows, and unzip it with 7-zip or other tools, the whole the unzipped files will be under “D:\RMB\” as below:

capture

Step 9: Install Oracle Utilities Application Framework Version 4.3.0.1.0

1) Edit Storage.xml file under “D:\RMB\RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform\FW\FW43010\Install-Upgrade” by giving right tablespace name and compression option.

..
..
.
<CI_ACC_GRP>
 <TABLESPACE>CISTS_01</TABLESPACE> 
 </CI_ACC_GRP> 
...
..

...
..
.
<CI_MPL_EXC>
 <TABLESPACE>CISTS_01</TABLESPACE> 
 <LOB>
 <RECOVERY_DATA> 
 <TABLESPACE>CISTS_01</TABLESPACE> 
 <COMPRESS>Y</COMPRESS>
 <CHUNK>8192</CHUNK> 
 <CACHE>Y</CACHE> 
 <LOGGING>Y</LOGGING> 
 <INROW>Y</INROW> 
 <COMPRESS>Y</COMPRESS> 
 </RECOVERY_DATA> 
 </LOB>
 </CI_MPL_EXC> 
...
..
.

2) Create a TNS name ORMB in tnsnames.ora .

ORMB =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = ractest-scan.ractest.local)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = ORMB)
 )
 )

3)Execute the OraDBI.exe utility from the “d:\RMB\RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform\FW\FW43010\Install-Upgrade”.

d:\RMB_PDEV\RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform\FW\FW43010\Install-Upgrade>OraDBI
Enter the name of the target database: ORMB
Enter your database username: CISADM
Enter your password username:
Enter the location for Java Home(e.g. C:\Java\jdk1.6.0_18): D:\java
Enter the TUGBU jarfiles location (e.g.C:\Database-Install\Jarfiles): d:\RMB_PDEV\RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform\FW\FW43010\jarfiles
Enter the Oracle user with read-write privileges to Database Schema: CISUSER
Enter the Oracle user with read-only privileges to Database Schema: CISREAD
Enter the database role with read-write privileges to Database Schema: CIS_USER
Enter the database role with read-only privileges to Database Schema: CIS_READ
Enter the name of the target Schema where you want to install or upgrade: CISADM
Enter the password for CISADM_PDEV schema (or hit ENTER to quit):
Re-enter the value:

Connecting to the Target Database as user CISADM
User Name : CISADM
Database Name : ORMB

WARNING: 2 sessions are connected to the target database, Please make sure you close them before pressing a key continue !!!
Ready to perform initial install of Database Rel.V4.3.0.1.0, do you want to continue (Y/N)? Y
Executing Database Setup Scripts...
Processing file FW_CDX_BP_CRTLOG.sql ...

Connecting to the Target Database as user CISADM
User Name : CISADM
Database Name : ORMB

Executing Initialization Scripts...
Processing file FW400_bpschema3.sql ...
Processing file FW400_bpschema4.sql ...
Processing file FW400_bpschema5.sql ...
Processing file FW410_bpschema7.sql ...
Processing file FW410_bpschema8.sql ...
Processing file FW410_bpschema9.sql ...
Processing file FW410_bpschema10.sql ...
Processing file FW410_bpschema11.sql ...
Processing file FW410_bpschema12.sql ...
Processing file FW410_bpschema13.sql ...
Processing file FW420_bpschema1.sql ...
Processing file FW420_bpschema2.sql ...
Processing file FW420_bpschema3.sql ...
Processing file FW420_bpschema4.sql ...
Processing file FW42020_bpschema1.sql ...
Performing Schema Upgrade...

Running the Schema Upgrade process in the Modification Mode
Connecting to the Target Database
User Name : CISADM
Database Name : ORMB
Schema Name : CISADM

Setting Current Schema to CISADM
Loading Blueprint
Loading the schema information from the target database
Creating the missing tables
Upgrading the columns


..
.
Setting Environment ID...
******************************************
Executing the Environment ID Setup Process
******************************************
Connecting to the Target Database ...
User Name : CISADM
Database Name : ORMB
Schema Name : CISADM

Setting Current Schema to CISADM
Environment ID set to 405852

Environment ID Setup Process completed successfully, Now Exiting ...
Auto Delete Upgrade...
Running Auto System Data Deletion process in Modification Mode
Connecting to the Target Database
User Name : CISADM
Database Name : ORMB
Schema Name : CISADM

Setting Current Schema to CISADM
Ready to upgrade the target database, Do you want to continue? (Y/N) Y

Reading Blueprint
Loading CI_ALG_TYPE from the blueprint
Loading CI_ALG_TYPE from the target database

......
.....
....
...
..
.
Processing file FW43010_postData1.sql ...
Processing file FW43010_postData2.sql ...
Processing file FW_cleanup.sql ...
Populating Log for Single-fixes...
******************************************
Executing the Single-Fix logging process
******************************************
Connecting to the ORMB as a CISADM user ...

Setting Current Schema to CISADM
Single-fix logging process completed successfully, Now Exiting ...

Configuring Security...
Connecting to the Target Database ...
User Name : CISADM
Database Name : ORMB

Generating security ...
Security privileges and Synonyms generated successfully, Now Exiting ...
Storing Database Credential with ecncrypted password...
Install/Upgrade of Database Rel.V4.3.0.1.0 Completed Sucessfully, Now Exiting ...
Press Enter to Continue ...

4) Check the objects and their status, which matches the installation guide

OBJECT_TYPE             STATUS    COUNT(*)
----------------------- ------- ----------
INDEX                   VALID          700
LOB                     VALID           47
SEQUENCE                VALID            4
TABLE                   VALID          502
TRIGGER                 VALID            1
VIEW                    VALID            8
6 rows selected.

Step 10: Install Rollup Pack for Oracle Utilities Application Framework Version 4.3.0.1.0

  1. Unzip the RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform file.
  2. Decompress the JAR file using the following command:
D:\RMB_PDEV\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform>d:\java\bin\jar -xvf ORMB-V25030-FW-PREREQ-MultiPlatform.jar

 Directory of D:\RMB_PDEV\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform

31/12/2015 04:43 PM <DIR> FW-V4.3.0.1.0-Rollup
06/04/2016 06:06 PM <DIR> META-INF
18/08/2016 10:32 AM 63,518,354 ORMB-V25030-FW-PREREQ-MultiPlatform.jar
 

D:\RMB_PDEV\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup>dir

 Directory of D:\RMB_PDEV\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup

11/03/2016 02:44 PM <DIR> Application
11/03/2016 02:36 PM <DIR> Database

3. Create a directory named dbpatch_tools in the TEMPDIR directory.

D:\RMB\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform>dir
 
07/11/2016 09:30 AM <DIR> dbpatch_tools
04/01/2016 06:04 PM <DIR> FW-V4.3.0.1.0-Rollup
04/01/2016 06:05 PM <DIR> META-INF
04/01/2016 11:36 PM 51,918,837 ORMB-V25010-FW-PREREQ-MultiPlatform.jar

4. Copy the db_patch_standalone.jar file to the dbpatch_tools directory using the following command:

D:\RMB_PDEV\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup\Database>copy db_patch_standalone.jar d:\dbpatch_tools\
 1 file(s) copied.

5. Decompress the JAR file using the following command:

d:\dbpatch_tools>d:\java\bin\jar -xvf db_patch_standalone.jar
 created: config/
 inflated: config/log4j.properties
 created: bin/
 inflated: bin/ouafDatabasePatch.sh
 inflated: bin/ouafDatabasePatch.cmd
 created: lib/
 inflated: lib/spl-dbpatch-4.3.0.1.0.jar
 inflated: lib/commons-cli-1.1.jar
 inflated: lib/commons-codec-1.6.jar
 inflated: lib/spl-shared-4.3.0.1.0.jar
 inflated: lib/log4j-1.2.17.jar
 inflated: lib/commons-collections-3.2.1.jar
 inflated: lib/commons-io-1.3.2.jar
 inflated: lib/ojdbc7-12.1.0.2.jar

d:\dbpatch_tools>dir

 Directory of d:\dbpatch_tools

17/09/2015 11:19 PM <DIR> bin
17/09/2015 11:19 PM <DIR> config
31/12/2015 04:43 PM 5,089,749 db_patch_standalone.jar
17/09/2015 11:39 PM <DIR> lib

6. Set the TOOLSBIN environment variable using the following command:

d:\dbpatch_tools>SET TOOLSBIN=D:\dbpatch_tools\bin
d:\dbpatch_tools>set 
.... .. 
TNS_ADMIN=D:\oracle 
TOOLSBIN=D:\RMB\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform\dbpatch_tools\bin

7. Change to the Database directory using the following command:

d:\dbpatch_tools\bin>tnsping ormb

TNS Ping Utility for 32-bit Windows: Version 12.1.0.2.0 - Production on 07-NOV-2016 09:40:47

Used parameter files:
D:\oracle\sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ractest-scan.ractest.local)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVIC
E_NAME = ORMB)))
OK (20 msec)

d:\dbpatch_tools\bin>cd D:\RMB_PDEV\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup\databas

8. Execute the ouafDatabasePatch utility.

Below step is no longer required for 2.5.0.3, because patch 22505470 has been included in 2.5.0.3.  For all the details about this issue, please refer to “ORA-12505, TNS:listener does not currently know of SID given in connect descriptor” from ORMB ouafDatabasePatch

Before executing ouafDatabasePatch utility, we need add “USE_SID_AS_SERVICE_listener=on” into GI listener.ora and reload listener to make it effective.  Because ouafDatabasePatch utility requires ORACLE_SID as input parameter. For PDB,  “USE_SID_AS_SERVICE_listener=on” parameter will take ORACLE_SID as a service.

D:\RMB_PDEV\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup\Database>ouafDatabasePatch.cmd
"CMDLINE::: D:\java\bin\java.exe -cp D:\dbpatch_tools\lib\*;D:\dbpatch_tools\config com.oracle.ouaf.database.patch.OUAFPatch "

Enter the target database type (O/M/D) [O]: O
Enter the username that owns the schema: CISADM
Enter the password for the CISADM user:
Enter the name of the Oracle Database Connection String: //RACTEST-SCAN.ractest.local:1521/ORMB

Target Schema is a Production Schema
Ready to process patches, Do you want to continue? (Y/N): Y
Working Directory: ORMB001
***********************************
Setting up language file: ORMB001\CDXPatch.lang
exit value: 0
Applying 21908287 ...
Writing to log file: ORMB001\log21908287.log
-----------------------------------------------------------
--Applying patch 21908287 at 11-25-2016 09:20:26using $LastChangedRevision: 42479 $
---------------------------------------------------------------
--Copying language information
-----------------------------------------------------------
--Patch 21908287 applied successfully at 11-25-2016 09:20:27
---------------------------------------------------------------
...
..
.
Applying 22619484 ...
Writing to log file: ORMB001\log22619484.log
-----------------------------------------------------------
--Applying patch 22619484 at 11-25-2016 09:20:47using $LastChangedRevision: 42479 $
---------------------------------------------------------------
--Copying language information
-----------------------------------------------------------
--Patch 22619484 applied successfully at 11-25-2016 09:20:54
---------------------------------------------------------------
Patch applied successfully..
D:\RMB_PDEV\RMB-V2.5.0.3.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup\Database>


Check the objects and their status, which matches the installation guide.

SQL> select owner,object_type, status,count(*) from dba_objects where owner like 'CIS%' group by owner,object_type, status order by 1,2;

OWNER OBJECT_TYPE STATUS COUNT(*)
-----------------------------------
CISADM INDEX      VALID   700
CISADM LOB        VALID    47
CISADM SEQUENCE   VALID     4
CISADM TABLE      VALID   502
CISADM TRIGGER    VALID     1
CISADM VIEW       VALID     8
CISREAD SYNONYM   VALID   514
CISUSER SYNONYM   VALID   514

8 rows selected.

Step 11: install Oracle Revenue Management and Billing Version 2.5.0.3.0

1. Execute the CdxDBI utility from “D:\RMB\RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform\RMB\Upgrade\Oracle\Install-Upgrade” directory.

Note: The TEMPDIR folder is the location where you have extracted the contents of the RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform.zip file.
Ensure that you execute the CdxDBI utility from the Window 32-bit or 64-bit desktop that has Oracle Database Client 12.1.0.2 (32-bit) and Java Development Kit Version 7.0 installed. The database must be listed in the tnsnames.ora file on your local machine.

D:\RMB_PDEV\RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform\RMB\Upgrade\Oracle\Install-Upgrade>oradbi
Enter the name of the target database: ORMB
Enter the name of the owner of Database Schema: CISADM
Enter the location for Java Home(e.g. C:\Java\jdk1.6.0_18): D:\RMB\jdk1.8.0_112
Enter the TUGBU jarfiles location (e.g.C:\Database-Install\Jarfiles): D:\RMB\RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform\RMB\jarfiles
Enter the password for CISADM schema (or hit ENTER to quit):
Re-enter the password:

Enter the Oracle user with read-write privileges to Database Schema: CISUSER
Enter the Oracle user with read-only privileges to Database Schema: CISREAD
Enter the database role with read-write privileges to Database Schema: CIS_USER
Enter the database role with read-only privileges to Database Schema: CIS_READ

Connecting to the Target Database as user CISADM
User Name : CISADM
Database Name : ORMB

WARNING: A session is connected to the target database, Please make sure you close it before pressing a key continue !!!
Ready to perform initial install of Database Rel.V2.5.0.3.0, do you want to continue (Y/N)? Y

Processing file FN_GET_UNPAID_BILL_PRD_AMT.sql ...

Processing file DROP_COLUMN_PRICELIST_ELIG_ID.sql ...

Processing file alter_primary_key_CI_BILL_ACH.sql ...

Processing file C1_AlgorithmSoftParameter.sql ...


Configuring Security...



Connecting to the Target Database ...
User Name : CISADM
Database Name : ORMB

Generating security ...
Security privileges and Synonyms generated successfully, Now Exiting ...
Storing Database Credential with ecncrypted password...
Install/Upgrade of Database Rel.V2.5.0.3.0 Completed Sucessfully, Now Exiting ...
Press Enter to Continue ...

D:\RMB_PDEV\RMB-V2.5.0.3.0-Oracle-Database-MultiPlatform\RMB\Upgrade\Oracle\Install-Upgrade>

Check the objects and their status. There is a trigger and a function are INVALID.

SQL> select owner, object_type, status,count(*) from dba_objects where owner like 'CIS%' group by owner, object_type, status order by 1,2,3;

OWNER OBJECT_TYPE STATUS COUNT(*)
------------------ ----------------------- ------- ----------
CISADM FUNCTION INVALID 1
CISADM FUNCTION VALID 22
CISADM INDEX VALID 2755
CISADM LOB VALID 161
CISADM PACKAGE VALID 4
CISADM PACKAGE BODY VALID 4
CISADM PROCEDURE VALID 1
CISADM SEQUENCE VALID 27
CISADM TABLE VALID 1831
CISADM TRIGGER INVALID 1
CISADM TYPE VALID 8
CISADM TYPE BODY VALID 1
CISADM VIEW VALID 155

STEP 12: Move Four Indexes onto Right Tablespace

If none default tablespace name “CISADM” is used instead of default “CIST_01”  tablespace name, there are four indexes are created onto “CIST_01” for some reason.

SQL> select distinct owner, tablespace_name from dba_segments where owner='CISADM';

OWNER TABLESPACE_NAME
------------------ ------------------------------
CISADM CISTS_01
CISADM CISADM
SQL> select segment_type, segment_Name from dba_segments where owner='CISADM_PDEV' and TABLESPACE_NAME='CISTS_01';

SEGMENT_TYPE SEGMENT_NAME
------------------ --------------------------------------------------------------------------------------------------------------------------------
INDEX XM172S2
INDEX XF028S1
INDEX XF013S1
INDEX XF165S1

SQL> alter index CISADM.XM172S2 rebuild tablespace CISADM;

Index altered.

SQL> alter index CISADM.XF028S1 rebuild tablespace CISADM;

Index altered.

SQL> alter index CISADM.XF013S1 rebuild tablespace CISADM;

Index altered.

SQL> alter index CISADM.XF165S1 rebuild tablespace CISADM;

Index altered.

SQL> select distinct owner, tablespace_name from dba_segments where owner='CISADM';

OWNER TABLESPACE_NAME
------------------ ------------------------------
CISADM CISADM

STEP 13: Post Installation Tasks ( Transaction Feed Management Feature Not Used )

  1. Apply the 24516656 patch.
d:\PATCHES\p24516656_25030\MultiPlatform\V2.5.0.3.0-24516656_MultiPlatform\database\ORACLE\CDXPatch>ouafDatabasePatch.cmd
"CMDLINE::: D:\java\bin\java.exe -cp D:\dbpatch_tools\lib\*;D:\dbpatch_tools\config com.oracle.ouaf.database.patch.OUAFPatch "

Enter the target database type (O/M/D) [O]: O
Enter the username that owns the schema: CISADM
Enter the password for the CISADM user:

Enter the name of the Oracle Database Connection String://RACTEST-SCAN.ractest.local:1521/ORMB

Target Schema is a Production Schema
Ready to process patches, Do you want to continue? (Y/N): Y
Working Directory: ORMB001
***********************************
Setting up language file: ORMB001\CDXPatch.lang
exit value: 0
Applying 24516656 ...
Enter a comma-separated list of Oracle users in which synonyms need to be created (e.g. CISUSER,CISREAD): CISUSER,CISREAD

Writing to log file: ORMB001\log24516656.log
-----------------------------------------------------------
--Applying patch 24516656 at 11-25-2016 13:38:40using $LastChangedRevision: 42479 $
---------------------------------------------------------------
--Copying language information
-----------------------------------------------------------
--Patch 24516656 applied successfully at 11-25-2016 13:39:47
---------------------------------------------------------------
Patch applied successfully..

Enter a database role which has a read-write privilege (e.g. CIS_USER): CIS_USER
Enter a database role which has a read only privilege (e.g. CIS_READ): CIS_READ
Generating Security ...
-----------------------------------------------------------
--Security is successfully applied at 11-25-2016 13:44:18

--------------------------------------------------------------
d:\PATCHES\p24516656_25030_PDEV\MultiPlatform\V2.5.0.3.0-24516656_MultiPlatform\database\ORACLE\CDXPatch>

2. Enable USER_LOCK Package

SQL> show con_name

CON_NAME
------------------------------
RACTESTPDB
SQL> show user
USER is "SYS"
SQL> @?/rdbms/admin/userlock.sql
    drop package user_lock
    *
    ERROR at line 1:
    ORA-04043: object USER_LOCK does not exist

    Package created.
    Package body created.
    Synonym created.
    Grant succeeded.

SQL> grant execute on USER_LOCK to public;
Grant succeeded.

 

3. Grant Permissions to the DBMS_LOCK Package and Recompile Database Objects

SQL> grant EXECUTE, DEBUG on DBMS_LOCK to cisadm;
Grant succeeded.

SQL> @?/rdbms/admin/utlrp.sql;

TIMESTAMP
-----------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN 2016-11-07 12:30:23

DOC> The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC> objects in the database. Recompilation time is proportional to the
DOC> number of invalid objects in the database, so this command may take
DOC> a long time to execute on a database with a large number of invalid
DOC> objects.
DOC>
DOC> Use the following queries to track recompilation progress:
DOC>
DOC> 1. Query returning the number of invalid objects remaining. This
DOC> number should decrease with time.
DOC> SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC> 2. Query returning the number of objects compiled so far. This number
DOC> should increase with time.
DOC> SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC> This script automatically chooses serial or parallel recompilation
DOC> based on the number of CPUs available (parameter cpu_count) multiplied
DOC> by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC> On RAC, this number is added across all RAC nodes.
DOC>
DOC> UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC> recompilation. Jobs are created without instance affinity so that they
DOC> can migrate across RAC nodes. Use the following queries to verify
DOC> whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC> 1. Query showing jobs created by UTL_RECOMP
DOC> SELECT job_name FROM dba_scheduler_jobs
DOC> WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC> 2. Query showing UTL_RECOMP jobs that are running
DOC> SELECT job_name FROM dba_scheduler_running_jobs
DOC> WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#

PL/SQL procedure successfully completed.


TIMESTAMP
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END 2016-11-07 12:30:28

DOC> The following query reports the number of objects that have compiled
DOC> with errors.
DOC>
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
 0

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
 0

Function created.
PL/SQL procedure successfully completed.

Function dropped.
PL/SQL procedure successfully completed.

4. Generate Database Statistics

SQL> exec DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>'CISADM', METHOD_OPT=>'FOR ALL COLUMNS SIZE AUTO', GRANULARITY=>'ALL', CASCADE=>TRUE);

PL/SQL procedure successfully completed.

Conclusion:

After the installation, there are two objects invalid.

  1. Function FN_GET_TIMESTAMP  is INVALID.  It is back to valid by applying patch 25187694
  2. Trigger  CIFKVALID is INVALID. It is no longer required for 2.5.0.3.0. So it can be dropped according to Oracle support.

“ORA-12505, TNS:listener does not currently know of SID given in connect descriptor” from ORMB ouafDatabasePatch

ouafDatabasePatch.cmd requires Instance Name ( SID ) instead of Service Name.

SYMPTOMS

When  installing Rollup Pack for Oracle Utilities Application Framework Version 4.3.0.1.0, ran ouafDatabasePatch.cmd command , and got the following errors:

D:\RMB\RMB-V2.5.0.1.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup\Database>set TOOLSBIN=D:\dbpatch_tools\bin
D:\RMB\RMB-V2.5.0.1.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup\Database>set JAVA_HOME=D:\java
D:\RMB\RMB-V2.5.0.1.0-FW-PREREQ-MultiPlatform\FW-V4.3.0.1.0-Rollup\Database>ouafDatabasePatch.cmd
"CMDLINE::: D:\java\bin\java.exe -cp D:\RMB\RMB-V2.5.0.1.0-FW-PREREQ-MultiPlatform\dbpatch_tools\lib\*;D:\RMB\RMB-V2.5.0.1.0-FW-PREREQ-MultiPlatform\dbpatch_tools\config com.oracle.ouaf.database.patch.OUAFPatch"

Enter the target database type (O/M/D) [O]: O
Enter the username that owns the schema: CISADM
Enter the password for the CISADM user: XXXXXX
Enter the name of the Oracle Database Connection String: ractest-scan.ractest.local:1521:ORMB

Couldn't connect to database ORACLE ractest-scan.ractest.local:1521:ORMB CISADM : java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

In connection string “ractest-scan.ractest.local:1521:ORMB”, ORMB is a service name instead of instance name.

SOLUTION

1)Apply patch 22505470: PATCHES APPEND EXTRA SPACE TO STRINGS AND ADD DBSERVICE CONNECTION SUPPORT.

2) Replace D:\dbpatch_tools\lib with new ones.

OR

2) Add below parameter into LISTENER.ora , and bounce/reload the listener.

USE_SID_AS_SERVICE_listener=on