Wednesday, June 22, 2011

Installing Oracle Forms & Reports 11.1.1.4 on RHEL Linux

Part I:  O/S Setup

Running Oracle Forms/Reports linux is completely impossible on any platform other then 64-bit Linux. Yes, the certification documentation may indicate you can run on 32-bit Linux; but in reality you can’t. That is because at their minimal configurations the process will consume 3 gig’s of RAM just sitting there idling. So given you can only allocate 4 gigs of RAM in 32 bit Linux you can see where the problem exists.  If you dig deep in the Oracle documentation you actually find that they require 6 gig’s of RAM for a bare-bones system. With that in mind we have the following:

Red Hat Enterprise Linux 5.6 64-bit (RHEL)
4 Gig’s of RAM (You can squeeze by with 2 in DEV if need be)
60 gigs of virtual storage mounted as /app/infra
1 virtual CPU
3 gigs of /tmp space (Necessary for web-logic to install)
3 gigs of swap space

The first action is to create a service account to own all of the software. We need to create the groups “dba” & “oinstall”. Next we need to create a user (which is “oracle” of course) to be granted access to those groups:

groupadd dba
groupadd oinstall
useradd –g dba –G oinstall oracle
passwd oracle

We also need to install a bunch of packages in RHEL to satisfy future dependence needs. This can be accomplished with the following yum command executed as root:

yum install binutils-2.* elfutils-libelf-0.* glibc-2.* glibc-common-2.* libaio-0.* libgcc-4.* libstdc++-4.* make-3.* compat-libstdc++-33* elfutils-libelf-devel-0.* glibc-devel-2.* gcc-4.* gcc-c++-4.* libaio-devel-0.* libstdc++-devel-4.* unixODBC-2.* unixODBC-devel-2.* sysstat-7 xhost xclock xdpyinfo libXp libXtst  gdbm.i386* libXp*.i386*

Now we need to re-configure the server’s operational parameters to give the various fusion middleware components the resources it needs to operate. Your numbers will differ based upon your hardware specs, but in /etc/sysctl.conf you will need to change theses:

 kernel.shmmax = 68719476736
kernel.shmall = 4294967296

and append theses to the end of the file:

kernel.sem = 250 32000 100 128
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
 
followed by this command to make the kernel changes take-effect:

/sbin/sysctl -p

Next we need to modify /etc/security/limits.conf and append the following to the file:

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

and append this to /etc/pam.d/login:

session    required     pam_limits.so

Since fusion middleware runs a jillion different process, which would take forever to correctly configure with SELinux, we disable SELinux by editing /etc/selinux/config and setting this:

SELINUX=disabled

Finally, at this point we should bounce the server. We have pushed through a lot of changes and a nice clean bounce is advisable before continuing. Also, because of the complexities associated with fussion middleware and the fact that we are installing all the infrastructure components on the same machine with same service account a robust profile for oracle is strongly recommend.    

Part II:  Install Web-logic

The biggest challenging in installing OAS 11g is locating the components you need to install! I strongly recommend you pull any software you need from edelivery.oracle.com. The downloads may be slow; but usually the organization format is much better and the usually have the install software installed followed by patchsets. Remember patchsets are cumulative in 11g so it is save to install the software and then install the highest patchset and you are good to go. Assuming we have the latest version of Weblogic, which at the time of this writing is 10.3.5, we can begin the install by unzipping the file and issuing this command::

java –jar –d64 wls1035_generic.jar

During the installation un-check the “Coherence” components and un-check the evaluation database and specify the following for the installation path: /app/mid/wl-home. At the end of the installation be sure to un-check launch startup screen: We will configure the domain at the same time we configure the forms/reports/discoverer components.

Part IV:  Install Forms/Reports software

From edelivery.oracle.com download 11.1.1.2 & 11.1.1.4 Forms/Reports/Discover software. Once you have all the components downloaded unzip them and make sure the “Disk” directories are all in the same folder and sequential to each other (IE Disk1, Disk2, etc) Once that is done execute the “setup.exe” located in disk one. Use the following for the Oracle home location:

/app/mid/wl-home/as_1

Once the installer is finished repeat the process and install the 11.1.1.4 patchset.

Following the patchset install we need to install a one-off patch to deal with a specific error that impacts compling forms. Download patch 9473270 and install it with opatch following by the following series of commands:

Cd $ORACLE_HOME/forms/lib

make  -f ins_forms.mk frmcmp_install
make  –f ins_forms.mk frmbld_install
make  –f ins_forms.mk frmcmpb_install
make  –f ins_forms.mk frmweb_install

Which causes another series of problems that need to be fixed by following note 1218994.1 and relinkings the reports process.
 

Part V:  Configure WebLogic and Forms/Reports stack

Once both the base install, and the patchset, have been installed we can now configure the software. To do this execute the following command:

ORACLE_HOME/bin/config.sh

This will begin the process to actually configure a running instances of the software. From the configuration menu select the following components:

  • Oracle Forms
  • Oracle Reports
  • Oracle Forms Builder
  • Oracle Reports Builder
  • Oracle HTTP Server
And specify the following for the ORACLE_INSTANCE:

/app/mid/wl-home/asinst

And the following for the domain name to something a bit more descriptive: FormsDomain

Once the software finishes configuring we can verify everything is operating correctly by logging into the domain control:

http://<hostname>:7001/console

Following the configuration of the software we need to setup a boot.properties file so we don’t have to specify weblogic credentials for the admin server and the various domain components. This can be accomplished by creating the boot.properties file in the following locations:

/app/mid/wl-home/user_projects/domains/FormsDomain/servers/AdminServer/security
/app/mid/wl-home/user_projects/domains/FormsDomain/servers/WLS_FORMS\security
/app/mid/wl-home/user_projects/domains/FormsDomain/servers/WLS_REPORTS\security

The file format should be as follows:

username=weblogic
password=<password>

The file will automatically encrypt itself on the next server startup and I recommend restarting the entire stack at this point to test the changes:

stopManagedWebLogic.sh WLS_FORMS
stopManagedWebLogic.sh WLS_REPORTS
opmnctl stopall
stopWebLogic.sh

followed by:

startWebLogic.sh &
opmnctl startall
startManagedWebLogic.sh WLS_FORMS
startManagedWebLogic.sh WLS_REPORTS

Also, we can remove the default report server with the following command:

opmnctl deletecomponent -adminUsername weblogic -adminHost localhost -adminPort 7001 -oracleHome /app/mid/wl-home/as_1 -oracleInstance /app/mid/wl-home/asinst -instanceName asinst -componentName <report name> -componentType ReportsServerComponent

Part VI:  Configure Web-Util

The components/configuration for web-util are mostly in place, but we need to copy the in the Jacob.jar file to $ORACLE_HOME/forms/java and Jacob.dll to $ORACLE_HOME/forms/webutil. Can't rember the exact URL, but make sure you dowload version 1.10.1 as specified in note 1137293.1

 Part VI:  Configure Auto-start on Linux

 Cut & past the following into /etc/init.d/orainit and then cd to /etc/rc5.d and execute the following commands;
ln –s /etc/init.d/orainit S99orainit
ln –s /etc/init.d/orainit K99orainit

#!/bin/sh
# description: webLogic adminServer and managedServer start script
WLS_DOMAIN=FormsDomain
WLS_BASE=/app/mid/wl-home
WLS_HOME=${WLS_BASE}/user_projects/domains/$WLS_DOMAIN
WLS_NODE_HOME=${WLS_BASE}/wlserver/server/bin
WLS_OWNER=oracle
WLS_ADMIN_PORT=7001
WLS_ADMIN_LOGIN=weblogic
WLS_ADMIN_PWD=admin
WLS_LOG_START=${WLS_BASE}/logs/start.`date '+%d%m%y'`.log
WLS_LOG_STOP=${WLS_BASE}/logs/stop.`date '+%d%m%y'`.log
WLS_MANAGED_SERVER1=WLS_FORMS

export ORACLE_INSTANCE=/app/mid/wl-home/asinst
export ORACLE_HOME=/app/mid/wl-home/as_1

if [ ! -f $WLS_HOME/startWebLogic.sh ]

then
    echo "WebLogic startup: cannot $WLS_HOME/startWebLogic.sh "
    exit
fi
startWeblogic()
{
#start node manager
su $WLS_OWNER -c "nohup $WLS_NODE_HOME/startNodeManager.sh > ${WLS_LOG_START} 2>&1 &"
sleep 10

#start admin server
su $WLS_OWNER -c "nohup $WLS_HOME/startWebLogic.sh >> ${WLS_LOG_START} 2>&1 &"
sleep 10

#start OHS proccess
su $WLS_OWNER -c "nohup ${ORACLE_HOME}/opmn/bin/opmnctl startall &"
sleep 30

#Start the rest of the IDM proccess

su $WLS_OWNER -c "nohup $WLS_HOME/bin/startManagedWebLogic.sh $WLS_MANAGED_SERVER1 >> $WLS_LOG_START 2>&1 &"
sleep 10
}

stopWeblogic()
{
#Stop node manager
su $WLS_OWNER -c "nohup $WLS_NODE_HOME/stopNodeManager.sh > $WLS_LOG_STOP 2>&1 &"
sleep 10

#Stop managed nodes
su $WLS_OWNER -c "nohup $WLS_HOME/bin/stopManagedWebLogic.sh $WLS_MANAGED_SERVER1 t3://localhost:$WLS_ADMIN_PORT >> $WLS_LOG_STOP 2>&1 &"
sleep 10

#stop OHS proccess
su $WLS_OWNER -c "nohup ${ORACLE_HOME}/opmn/bin/opmnctl stopall &"

sleep 30
#Stop admin server
su $WLS_OWNER -c "nohup $WLS_HOME/bin/stopWebLogic.sh >> $WLS_LOG_STOP 2>&1 &"
sleep 10
}



case "$1" in

    'start')
        startWeblogic
        ;;

    'stop')
        stopWeblogic
        ;;

    'restart')
        stopWeblogic
        startWeblogic
        ;;
    *)
        echo "Usage: $0 start|stop|restart"
        exit 1
        ;;
esac

Finally, at long last you have finished setting up a forms instance. Remember the good old days of 10g when everything was done for you in one shot? L

No comments:

Post a Comment