Wednesday, September 21, 2011

Tips for Installing Oracle BPM Suite 11g FP4

Edited on October 20, 2011 regarding the location of OPatch (due to progressive insight, and some comments).

When installing Oracle BPM Suite 11g FP4 I ran into a couple of things, of which I thought I better write that down for some next time. If you are a SOA Suite install crack, don't bother to read on, as I probably have nothing new to tell you. In case you are new to it or do installations only occasionally, you might find this saving you considerable time. It would have done so in my case.

You typically install the SOA/BPM Suite on top of WebLogic. The MW_HOME is the (middleware) folder containing the wlserver_10.3 folder (among others). The Common Oracle Home will be [MW_HOME]\oracle_common, while the SOA_ORACLE_HOME will be [MW_HOME]\Oracle_SOA1. In the readme for the PS4 installation ORACLE_HOME refers to both, so read the instructions carefully.

The first instruction is to make sure you have the latest OPatch. When you download it, you will find that the instructions of OPatch itself say you can find OPatch in ORACLE_HOME. There actually is one in both ORACLE_HOMES. Probably the same one, I did not bother to find out and copied the download OPatch to both folders.

The instructions are particularly written for Unix, so needs some "translation" to make it applicable for Windows:
  • Where it reads "$ORACLE_HOME" you should replace that by "%ORACLE_HOME%" (duh!)
  • To patch the Oracle Common Home it tells you to use the following command:

    $ORACLE_HOME/OPatch/opatch napply -invPtrLoc $ORACLE_HOME/oraInst.loc

    It took me some time to find out that the invPtrLoc only applies to Unix only, and that for Windows you can simply leave it out. On Windows the inventory information is located in the registry instead of the oraInst.loc file. So the command for Windows is simply:

    %ORACLE_HOME%\OPatch\opatch napply

PSA stands for Patch Set Assistant. I skipped the backup of the database, because as a developer I can simply recreate the SOA INFRA any time without loosing any valuable information.

The instructions will tell you to run PSA from the ORACLE_HOME\bin folder. Now that's a bit confusing as there is a psa.bat in the bin folder of both ORACLE_HOME's. But if you read the PSA instructions carefully, you will find it refers to SOA_ORACLE_HOME ([MW_HOME]\Oracle_SOA1. An educated guess already made me already think so.

If you are using OTN you may not be referred to the proper post-installation guide. The one it currently points to, is the post-installation steps for Oracle SOA Suite for Healthcare Integration. If you need that do that first, but then you still have to do the BPM post-installation instructions.

BTW, this guide discusses the commands for Unix as well as Windows, and specifically uses SOA_ORACLE_HOME. But that's for weenies, and not us developers, as we like finding out the hard way, right?

While I'm at it I might as well past the command I used for updating the policy store, as it may just fit your environment as well:

wlst.cmd %soa_oracle_home%\bin\ --username weblogic --password welcome1 --wlsHost localhost --adminServerListenPort 7001

The post-installation instructions tell you to delete the DOMAIN_HOME\servers\...\tmp. Many of us developer probably choose to deploy the SOA Suite on the Admin Server, so the only servers\tmp folder you then have is DOMAIN_HOME\servers\...\AdminServer\tmp. According to the documentation about domain configuration files, you can simply delete the contents of that folder, so that is what I did. Have some patience, as that folder contains GB's of files.

If you followed my example, the next post-installation instruction may make you start cursing, as it will tell you to copy some library into a sub-folder of the tmp you just deleted. I, on the contrary, kept my usual cool, and just started the server. I still kept my cool when looking at several exceptions, not recalling if those were new, of whether I've seen those before. So I bounced the server and found that the exceptions disappeared. Also the WebLogic Console and the Enterprise Manager appear to function normally (pfew!).

I stopped the server, and continued with task 3, regarding copying the jar file adflibSOAMgmt.jar. And bounced the server again.

Finally, the readme on OTN mentions that you should have a The one I have also mentions a Both instructions do not mentions to actually install them. I did both in the usual way (JDeveloper -> Help -> etc.).

That's when I was ready.


Anonymous said...

Jan - this was very helpful. I'm curious if you got an error when you ran the "%ORACLE_HOME%/OPatch/opatch napply" command and how you got around it. When I run the command, I get the exception "java.lang.NumberFormatException: null...".


Stefan Koser said...

Hi, your need to set the locale/language to English.
This error occurs for example if you run this in a shell with a German or other locale where "." and "," are used differently.
Kind regards
Stefan Koser

Chris@Blogger said...

I try to upgrade this patch to our BPM server, but it shows this error:

Invoking OPatch

Oracle Interim Patch Installer version
Copyright (c) 2010, Oracle Corporation. All rights reserved.

UTIL session

Oracle Home : /home/weblogic/weblogic10.3.5.0/OracleSOA
Central Inventory : /home/weblogic/oraInventory
from : /home/weblogic/weblogic10.3.5.0/OracleSOA/oraInst.loc
OPatch version :
OUI version :
OUI location : /home/weblogic/weblogic10.3.5.0/OracleSOA/oui
Log file location : /home/weblogic/weblogic10.3.5.0/OracleSOA/cfgtoollogs/opatch/opatch2011-09-30_17-28-19PM.log

Patch history file: /home/weblogic/weblogic10.3.5.0/OracleSOA/cfgtoollogs/opatch/opatch_history.txt

OPatch detects the Middleware Home as "/home/weblogic/weblogic10.3.5.0"

Invoking utility "napply"
Checking conflict among patches...
Checking if Oracle Home has components required by patches...
UtilSession failed: Patch 12319055 requires component(s) that are not installed in OracleHome. These not-installed components are,

OPatch failed with error code 73

Do u have any idea? Thank You.

Anonymous said...

I am facing the same exception what Chris and Anonymous1 are facing. Is there something that I/we are missing out on? I am installing on a Windows 7 64-bit!

Anonymous said...

Stefan, I tried to check on locale/language issue. I am running Windows 7 on English. I am not sure if I followed your locale of the shell correctly.

Niall Commiskey said...


Regarding your error - I hit this as well. Seems to be OPatch related.
All I needed to do was ensure I ran OPatch from /oracle_common/opatch.

Please see

Hope this helps!

Anonymous said...

Hi, I have a problem related UCM integration at below link:

Can you help me?

Thank you. said...

Goodness, there is a lot of effective info in this post!

Oscar said...


I have solved the problem for
"java.lang.NumberFormatException: null..."


UtilSession failed: Patch 12319055 requires component(s) that are not installed in OracleHome. These not-installed components are,

In my case the first error is because the central inventory has not registered the ORACLE_HOMEs.

To register ORACLE_HOMEs:

from cmd, terminal window:
set ORACLE_HOME = E:\Oracle\Middleware\oracle_common
then go to
E:\Oracle\Middleware\oracle_common\oui\bin and execute attachHome.bat

from cmd, terminal window:
set ORACLE_HOME = E:\Oracle\Middleware\oracle_Soa1
then go to
E:\Oracle\Middleware\oracle_soa1\oui\bin and execute attachHome.bat

These files register on central repository the two homes.

then for validate the homes execute

E:\Oracle\Middleware\oracle_common\Opatch\opatch lshomes -invPtrLoc "C:\Progra~1\Oracle\Inventory\ContentsXML\inventory.xml"

check that two homes are shown

For the second error, in my case, is because the file
E:\Oracle\Middleware\oracle_common\inventory\ContentsXML\comps.xml was wrong and the information contained was similar to:

"COMP NAME="Dummy Top Component" VER="" BUILD_NUMBER="0" RE ........

I've replaced the file with the comps.xml from another installation (Send me an email if you need it) and executed
C:\tmp\PATH_TOP_SOA>e:\Oracle\Middleware\oracle_common\OPatch\opatch lsinventory
-details -invPtrLoc "C:\PROGRA~1\Oracle\Inventory\ContentsXML\inventory.xml"

to check that is correct

Finally, execute the Opatch napply for the two homes

Hope this solution help you,

Oscar Rodriguez

Jan Kettenis said...

Guys, I changed the blog somewhat, now suggestion to copy the downloaded OPatch to both existing folders. I tried this out on a new environment and strictly followed the instruction about setting the [ORACLE_HOME] and executing OPatch. In my case this worked as it should.

Thanks for all your great additions!

SEO tools said...

Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write ups thanks once again.