Installing Oracle Forms/Reports 11.1.1.6 on Red Hat 6 (64-bit) using JDK 7

Peter Lorenzen
01/08-2012

I have a new and improved post about installing Forms/Reports 11.1.2.2.0

Here is my experiences with installing Forms and Reports 11.1.1.6 on Red Hat 6 (64-bit) using JDK 7.

Forms/Reports currently exists in two flavors 11.1.1.6 and 11.1.2.0. 11.1.1.6 is the main Fusion Middleware release. As far as I can tell 11.1.2.0 is an offspring used to fast track certain technologies into the product. Even though Oracle recommends installing 11.1.2.0 I am a bit worried about taking that route. If you do not need the new OAM stuff etc, I would stay with the main release.

First have a look at the documentation:

Oracle Fusion Middleware Installation Planning Guide
Oracle Fusion Middleware Installation Guide for Oracle Portal, Forms, Reports and Discoverer

Overview

Download the software

Prepare the OS
I am using Red Hat 6 64-bit. Check the System Requirements for UNIX Operating Systems.
Also check “Special Startup Requirements for Linux x86 or Linux x86-64 Operating Systems” in the same document.

Unfortunate the documentation does currently not list all the packages that is needed.

I got some errors during the installation and during the configuration of the domain:

Error in invoking target ‘install’ of makefile ‘/u01/app/oracle/product/fmw/pfrd_binaries/sqlplus/lib/ins_sqlplus.mk

/u01/app/oracle/product/fmw/pfrd_binaries/bin/rwserver: error while loading shared libraries: libXm.so.3: cannot open shared object file: No such file or directory

You also need these packages:

  • libgcc.i686
  • libstdc++.i686
  • libstdc++-devel.i686
  • openmotif.x86_64
  • openmotif22.x86_64

Also compat-libcap (version 1-1.10-1) is listed. This means that you have to install: compat-libcap1.x86_64.

I have created a Service Request for this to be fixed in the documentation.

Create user, group and directories:

groupadd oinstall
useradd -g oinstall -G oinstall oracle
passwd oracle

mkdir -p /u01/app/oracle/product
mkdir -p /u01/tmp

chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/

chown -R oracle:oinstall /u01/tmp/
chmod -R 775 /u01/tmp/

Since we use OPMN we need to insert the ip and hostname in the /etc/hosts file.

172.31.8.238  wintermute.dk.logica.com wintermute

Install Java
Forms/Reports 11.1.1.6 is certified with Java 7 on both the server side and the client side. Certification Matrix.

I could not get the Weblogic Installer to work with Java 7. The Installer start without any problems but on some of the screens you cannot select options with the mouse or input text. I have reproduced this with Oracle Linux 6 and with the Weblogic 12c Installer. I have created a Service Request and are awaiting a solution.

As a workaround I use Java 6 during the installation and later switch to Java 7. This works fine.

After I install Java I always create a softlink for the JDK and reference it everywhere. This makes it is easier later when you need to upgrade the JDK.

ln -s /u01/app/oracle/product/jdk1.6.0_33 /u01/app/oracle/product/java_current

Install Weblogic server 10.3.6
Take care when downloading the wls1036_generic.jar file since some browsers will rename it to wls1036_generic.zip.

/u01/app/oracle/product/java_current/bin/java -jar
-Djava.io.tmpdir=/u01/tmp wls1036_generic.jar -log=wls_install.log

-Djava.io.tmpdir is only needed if there is not enough tmp space.
Below I have ignored the screens where you can sign up for security updates etc.

wls1
wls2
wls3
wls4
wls5

Here my soft link to the JDK is ignored so we have to fix this later.

wls6
wls7
wls8

Our soft link to the JDK was ignored so we have to fix this:

cd /u01/app/oracle/product/fmw
grep -R jdk1.6.0_33 *
find . -type f -exec sed -i "s/\/u01\/app\/oracle\/product\/jdk1.6.0_33/\/u01\
/app\/oracle\/product\/java_current/g" {} \;

Install the latest Weblogic CPU/PSU

Weblogic 10.3.6 July 2012 CPU/PSU (Patch 14142550).
Stop all Weblogic servers and remove any previously applied Patch Set Update and associated overlay patches.

unzip p14142550_1036_Generic.zip
mkdir /u01/app/oracle/product/fmw/utils/bsu/cache_dir
cp JSES.jar /u01/app/oracle/product/fmw/utils/bsu/cache_dir/.
cp patch-catalog_17844.xml /u01/app/oracle/product/fmw/utils/bsu/
cache_dir/patch-catalog.xml

Make sure that the patch-catalog_17844.xml is renamed to patch-catalog.xml!

cd /u01/app/oracle/product/fmw/utils/bsu/
./bsu.sh -prod_dir=/u01/app/oracle/product/fmw/wlserver_10.3
 -patchlist=JSES -verbose -install

Verify that the patch is installed.

./bsu.sh -prod_dir=/u01/app/oracle/product/fmw/wlserver_10.3
 -status=applied -verbose -view

Install Forms/Reports version 11.1.1.2.0
Forms 11.1.1.2.0 is not supported on Red Hat 6 so we ignore the system requirements:

cd /u01/software/ofm_pfrd_linux_11.1.1.2.0_64/Disk1
./runInstaller -ignoreSysPrereqs  -jreLoc 
/u01/app/oracle/product/java_current/jre

Below I have ignored the screens where you can sign up for security updates etc.

forms1
forms2

cd /u01/app/oracle/oraInventory
./createCentralInventory.sh
Setting the inventory to /u01/app/oracle/oraInventory
Setting the group name to oinstall
Creating the Oracle inventory pointer file (/etc/oraInst.loc)
Changing permissions of /u01/app/oracle/oraInventory to 770.
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete

forms3
forms4
forms5
forms6
forms7
forms8

cd /u01/app/oracle/product/fmw/pfrd_binaries
./oracleRoot.sh

forms9

Patch Forms/Reports to version 11.1.1.6.0

Patch 13517084.

cd /u01/software/p13517084_111160_Linux-x86-64/Disk1
./runInstaller -jreLoc /u01/app/oracle/product/java_current/jre

Below I have ignored the screens where you can sign up for security updates etc.

forms_patch1
forms_patch2
forms_patch3
forms_patch4
forms_patch5

cd /u01/app/oracle/product/fmw/pfrd_binaries
./oracleRoot.sh

forms_patch6

Configure Forms/Reports

cd /u01/app/oracle/product/fmw/pfrd_binaries/bin
./config.sh

Below I have ignored the screens where you can sign up for security updates etc.

create_domain1
create_domain2
create_domain3
create_domain4
create_domain5
create_domain6
create_domain7
create_domain8
create_domain9
create_domain10
create_domain11

Homes overview
There is a wealth of homes in this installation:

  • Application Home – /u01/app/oracle/product/fmw/user_projects/applications/FormsReports
  • Domain Home – /u01/app/oracle/product/fmw/user_projects/domains/FormsReports
  • Instance Home – /u01/app/oracle/product/fmw/FRinst
  • Middleware Home – /u01/app/oracle/product/fmw
  • Oracle Commone Home – /u01/app/oracle/product/fmw/oracle_common
  • Oracle Home – /u01/app/oracle/product/fmw/pfrd_binaries
  • Weblogic Server Home – /u01/app/oracle/product/fmw/wlserver_10.3

I normally put the Instance Home in /u01/app/oracle/product/fmw/instances/FRinst but I forgot it here 🙂

For more information check the Oracle Fusion Middleware Installation Planning Guide.

Verifying the Installation

OPMN status:

cd /u01/app/oracle/product/fmw/FRinst/bin
 ./opmnctl status -l
Processes in Instance: FRinst
---------------------------------+--------------------+---------+----------+------------+----------+-----------+------
ias-component                    | process-type       |     pid | status   |        uid |  memused |    uptime | ports
---------------------------------+--------------------+---------+----------+------------+----------+-----------+------
emagent_FRinst                   | EMAGENT            |    6652 | Alive    |  908481443 |   106092 | 190:53:19 | N/A
RptSvr_wintermute_FRinst         | ReportsServerComp~ |    6655 | Alive    |  908481444 |   106092 | 190:53:19 | N/A
ohs1                             | OHS                |    6653 | Alive    |  908481442 |  1433404 | 190:53:19 | https:8889,https:8890,http:8888

Checking Browser URLs:
If you are not sure which ports are used check this file: /u01/app/oracle/product/fmw/pfrd_binaries/install/portlist.ini

#Wed Jun 20 13:47:38 CEST 2012
OPMN_LOCAL_PORT=6700
OHS_LISTEN_PORT=8888
WLS_FORMS_PORT=9001
OHS_SSL_PORT=8890
OHS_PROXY_PORT=8889
WLS_REPORTS_PORT=9002
OPMN_REQUEST_PORT=6702
OPMN_REMOTE_PORT=6701
DOMAIN_PORT=7001
NODE_MANAGER_PORT=-1
EMAGENT_PORT=5155

Screenshots:
Administration Server Console – http://wintermute:7001/console
Enterprise Manager Console – http://wintermute:7001/em
Enterprise Manager Agent – http://wintermute:5155/emd/main
Oracle Forms – http://wintermute:8888/forms/frmservlet
Oracle Reports – http://wintermute:8888/reports/rwservlet

Java JDK 7

Before switching to JDK 7 you should read “Using WebLogic Server with JDK 7“.

mkdir /u01/app/oracle/product/jdk1.7.0_05/jre/lib/endorsed
cd /u01/app/oracle/product/fmw/modules
cp javax.annotation_1.0.0.0_1-0.jar /u01/app/oracle/product/jdk1.7.0_05/jre/lib/endorsed
cp javax.xml.bind_2.1.1.jar /u01/app/oracle/product/jdk1.7.0_05/jre/lib/endorsed
cp javax.xml.ws_2.1.1.jar /u01/app/oracle/product/jdk1.7.0_05/jre/lib/endorsed
ls /u01/app/oracle/product/jdk1.7.0_05/jre/lib/endorsed

Change the softlink:

cd /u01/app/oracle/product
rm -f /u01/app/oracle/product/java_current
ln -s /u01/app/oracle/product/jdk1.7.0_05 /u01/app/oracle/product/java_current

Patch Java
There is currently no security patches for Java 7 update 5.
See:
http://www.oracle.com/technetwork/topics/security/javacpujun2012-1515912.html

Set Java memory parameters
You can set the Java memory parameters in several ways. I normal do this in:
/u01/app/oracle/product/fmw/user_projects/domains/FormsReports/bin/startWebLogic.sh
java_memory.png

Configure automatic start of the servers/processes
I always use the Node Manager to restart the Weblogic servers after a server boot. If you don’t want to use the Node Manager have a look at this MOS note:
“Sample Script (Unix): Start / Stop Oracle Fusion Middleware 11g OPMN and WebLogic Components [ID 1060855.1]”

Besides Weblogic we also need to start the opmn processes.

I did the following:
1. Set CrashRecoveryEnabled=true in [Weblogic Server Home]/common/nodemanager/nodemanager.properties
2. Set the NodeManager Username and Password in the Admin server console. Domain => Security => Advanced
3. Created two (+init script) boot scripts:
/etc/init.d/fmwNodeManager
/etc/init.d/initFmwNodeManager
/etc/init.d/opmn
4. Added them

cd /etc/init.d
chkconfig --add fmwNodeManager
chkconfig --level 3 fmwNodeManager on
chkconfig --level 5 fmwNodeManager on
chkconfig --list fmwNodeManager

chkconfig --add opmn
chkconfig --level 3 opmn on
chkconfig --level 5 opmn on
chkconfig --list opmn

5. Stop/start everything manually
Stop all Weblogic servers via the Admin server console and killing the Node Manager process.
Start the Node Manager via:

/etc/init.d/fmwNodeManager start

Start the Admin server via:

. /u01/app/oracle/product/fmw/user_projects/domains/FormsReports/bin/
setDomainEnv.sh
java weblogic.WLST
nmConnect(username='nodemgr',password='passwd',domainName='FormsReports',
port='5556',nmType='ssl')
nmStart('AdminServer')

Start the two Managed servers via the Admin Server console.
6. Boot the server and check if everything starts up.

Entropy
If it takes a loooong time to start a Weblogic server or the Node Manager it can be cause by low entropy.
I have experienced 10+ minutes for the initial start of the Node Manager on an otherwise fast Blade server.

Have a look at these:
http://docs.oracle.com/cd/E12839_01/doc.1111/e14773/weblogic_server_issues.htm#CIHIIBGJ
http://rackerhacker.com/2007/07/01/check-available-entropy-in-linux

Check entropy:

cat /proc/sys/kernel/random/entropy_avail

If the entropy is low try to create a lot of I/O. For example via dd:

dd if=/dev/zero of=filename.iso bs=1G count=10

Configure OCM
As far as I know OCM will default upgrade it self if it has a direct connection to Oracle via the Internet.
But I normally do this manually 🙂

Download the latest OCM from MOS.

This installation contains 3 OCM installations:
/u01/app/oracle/product/fmw/oracle_common/ccr
/u01/app/oracle/product/fmw/pfrd_binaries/ccr
/u01/app/oracle/product/fmw/utils/ccr

I assume that it does not make a difference which one you use.

rm -rf /u01/app/oracle/product/fmw/utils/ccr
unzip p5567658_1037_Linux-x86-64.zip -d /u01/app/oracle/product/fmw/utils
. /u01/app/oracle/product/fmw/user_projects/domains/FormsReports/
bin/setDomainEnv.sh
export ORACLE_HOME=/u01/app/oracle/product/fmw/utils
export JAVA_HOME=/u01/app/oracle/product/java_current
cd $ORACLE_HOME/ccr/bin
./setupCCR -s 12345678 nobody@logica.com DK

Verify that it is working:

cd $ORACLE_HOME/ccr/bin
./emCCR start
./emCCR status
./emCCR -register test
./emCCR -verbose test
./emCCR register
./emCCR collect
./emCCR upload
./emCCR disable_target

You need to restart the Weblogic Admin server before OCM will pickup all the targets.

{ 2 comments… read them below or add one }

Peter August 8, 2012 at 11:43

Awesome guide, thanks for sharing it!

Adam February 21, 2013 at 16:50

Fantastic reference, thank you so much for posting. It’s really helped me in my new job!

Leave a Comment

Previous post:

Next post: