For Any queries,collaborations please mail us at support@funoracleapps.com

Install Stress tool on Amazon Linux

Install Stress tool on Amazon Linux

Login into EC2 instance

sudo amazon-linux-extras install epel -y
sudo yum install stress -y

If you like please follow and comment

HAPROXY as the Reverse Proxy and usage with EBS/Oracle Apps

HAPROXY as the Reverse Proxy and usage with EBS/Oracle Apps

HAProxy is a free, very fast, and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic websites and powers quite a number of the world's most visited ones.

Benefits of Reverse Proxy

  • Load Balancing
  • Web Caching
  • Improved performance
  • Clients never know where is Server
  • More Efficient and Secure SSL encryption

Integration with Oracle EBS

  • TLS Termination point in front of the Oracle EBS.
  • Up-to-date TLS endpoint 
  • Certificates signed with SHA-2 (signature algorithm: sha256WithRSAEncryption)
  • TLS 1.2 with stronger cipher suites
  • Can be implemented on same node as application Node
  • TLS 1.0, TLS 1.1, TLS 1.2 supported
  • Works with both Self signed and CA certificates.

HAProxy can provide an up-to-date TLS endpoint with the following configuration options:
Certificates signed with SHA-2 (signature algorithm: sha256WithRSAEncryption)
TLS 1.2 with stronger cipher suites

Who Can Use

While HAProxy is a capable proxy and a load balancer, If you are using Oracle Linux 6 (or Red Hat), you can simply install the OS-provided RPM package. If you are using AIX or Solaris, it is possible to download the HAProxy source code and compile it for that operating system (remember to configure HAProxy for SSL/TLS). Windows and HP-UX are not currently supported by the build system supplied with HAProxy.
In the case that you cannot or prefer not to run HAProxy on the same host as OHS 10g, you can run HAProxy on a different host with a supported operating system. For example, you can run HAProxy on Linux on real hardware or in a virtual machine.

I will share a post soon on steps to integrate HAProxy with EBS.

If you like please follow and comment

Schemas used during Login into an EBS Application

Schemas used during  Login into an EBS Application

When we sign on to Oracle E-Business Suite, we initially connect to the public schema,
APPLSYSPUB. Once the user name and password have been verified, Oracle E-Business
Suite connects you to the APPS schema and allows you to choose responsibility. You can
then use the Forms interface or HTML interface to access data that resides in a product
schema. So whenever a database session is created it will be connected via apps user.
The OAcore and forms services will be making the database session. In R12.2 the data source in Weblogic is used for the database connection.

More about APPLSYSPUB check the link below

If you like please follow and comment

The flow of how to Start/Stop Oracle Application Services R12.2

The flow of how to Start/Stop Oracle Application Services R12.2

In this post, I am going to share how to start/stop the application services in EBS R12.2. I have tried to explain the process through an easy diagram as a visual explanation is remembered longer.


Please note in the case of Multiple Application nodes or RAC you have to start services on all nodes.

If you like please follow and comment

How to change APPS password in Oracle Apps/EBS 11i

How to change APPS password in Oracle Apps/EBS 11i

Steps to change apps password in 11i

1) Shut down the application on all nodes
2) Take the backup below files on all application nodes.

$ORACLE_HOME/reports60/server/CGIcmd.dat  (8.0.6 Oracle_home)

3) Backup below tables

create table FND_USER_BK_<YYYYMM> as select * from FND_USER;
create table FND_ORACLE_USERID_BK_<YYYYMM> as select * from FND_ORACLE_USERID;

4) Change apps password using the below command.

FNDCPASS apps/<appspwd> 0 Y system/<pwd> SYSTEM APPLSYS <new password>

 **Changing APPLSYS user password will automatically change APPS user password.

5) Change APPS password in the following files.

$ORACLE_HOME/reports60/server/CGIcmd.dat  (8.0.6 Oracle_home)

6) Start the Application on all the nodes.

7 ) Validate services.

8) Recreate DB links if any needed.

9) Check any cron job/scripts/OEM that have apps password hardcoded.

If you like please follow and comment

How to Start and Stop Oracle Database and Listener Automatically with Linux Server Reboot

How to Start and Stop Oracle Database and Listener Automatically  with Server Reboot

In this post, I am going to share how the Oracle database and listener can automatically
shutdown and startup when the server reboots.
I have a 19c  Database 


1) Edit the /etc/oratab file, and place a Y at the end of the entry for the databases you want to
 automatically restart when the system reboots. 

# vi /etc/oratab

The Y on the end of the string signifies that the database can be started and stopped by the
 ORACLE_HOME/bin/dbstart and ORACLE_HOME/bin/dbshut scripts.

2) Create the service script /etc/init.d/dbora. The content of the script is as follows. Make sure you change the values of variables ORA_HOME and ORA_OWNER to match your environment.

All is being done via root user.

# chkconfig: 35 99 10
# description: Starts and Stops Oracle and Listener processes
case "$1" in
        echo -n $"Starting Oracle DB: "
    su - $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" &
    su - $ORA_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" &
        echo -n $"Shutting down Oracle DB: "
    su - $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" &
    su - $ORA_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" &
        echo -n $"Shutting down Oracle DB: "
          su - $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" &
          su - $ORA_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" &
        sleep 5
        echo -n $"Starting Oracle DB: "
        su - $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" &
        su - $ORA_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" &
        echo "usage: $0 {start|stop|restart}"


# End of script dbora

# chkconfig: 35 99 10
# description: Starts and stops Oracle database
The above are mandatory and not just comments since they describe the characteristics of the
 service where:

    • 35-means that the service will be started in init levels 3 and 5 and will be stopped in other

    • 99-means that the service will be started at the near end of the init level processing

    • 10-means that the service will be stopped at the near beginning of the init level processing

3) Make the script executable and Enable to run on boot

1. Change the group of the dbora file to match the group assigned to the operating system owner of the Oracle software 

# chgrp dba /etc/init.d/dbora

2. Set the script permissions to 755

# chmod 750 /etc/init.d/dbora

3. Run the following chkconfig command:

# chkconfig --add dbora

This action registers the service to the Linux service mechanism. This also creates the appropriate symbolic links to files beneath the /etc/rc.d directory. 

[root@fundb rc.d]# cd rc3.d
[root@fundb rc3.d]# ls -ltr
total 0
lrwxrwxrwx. 1 root root 17 Jan 26 13:49 S10network -> ../init.d/network
lrwxrwxrwx. 1 root root 20 Jan 26 13:49 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx. 1 root root 15 Jan 26 13:55 S97rhnsd -> ../init.d/rhnsd
lrwxrwxrwx. 1 root root 15 Feb 10 17:01 S99dbora -> ../init.d/dbora

Use the –list option to display whether a service is on or off for each run level:

# chkconfig --list | grep dbora
dbora           0:off   1:off   2:off   3:on    4:off   5:on    6:off

If you need to delete a service, use the --del option of chkconfig.

On Linux 7:

# systemctl enable dbora
/sbin/chkconfig dbora on

Thats it, lets reboot server and validate
You can also do

service dbora stop
service dbora start

On Oracle Database Multitenant PDBs 12c/18c/19c we can create a trigger to start all PDB’s after the restart

Run the following pl/sql with SYSDBA

create or replace trigger sys.after_startup
   after startup on database
   execute immediate 'alter pluggable database all open';
end after_startup;

If you like please follow and comment

How to Install Oracle 19c Database on OEL 7.9

How to Install Oracle 19c Database on OEL 7.9

In this post, I am going to share the steps to install a 19c database on OEL 7.9
I have already created a VM for this setup.

OS version: OEL 7.9

Add the hostname and IP in /etc/hosts if not using DNS as per your server setup

[root@fundb ~]# cat /etc/hosts   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 fundb.training fundb

Download the latest oel 7 public repositories on the server to do the setup. I will use the same to install all the prereqs for the 19c database.

[root@fundb yum.repos.d]# cd /etc/yum.repos.d

[root@fundb yum.repos.d]# wget http://yum.oracle.com/public-yum-ol7.repo

--2021-02-09 17:15:53--  http://yum.oracle.com/public-yum-ol7.repo

Resolving yum.oracle.com (yum.oracle.com)...

Connecting to yum.oracle.com (yum.oracle.com)||:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 16402 (16K) [text/plain]

Saving to: ‘public-yum-ol7.repo’

100%[======================================>] 16,402      --.-K/s   in 0.005s  

2021-02-09 17:15:54 (3.16 MB/s) - ‘public-yum-ol7.repo’ saved [16402/16402]

[root@fundb yum.repos.d]# ls -ltr

total 20

-rw-r--r--. 1 root root 16402 Aug 26  2019 public-yum-ol7.repo

Enable(update from 0 to 1) the addons in repo file.


name=Oracle Linux $releasever Add ons ($basearch)





Install prereqs for 19c now.

yum install -y oracle-database-preinstall-19c

ol7_UEKR5                                                | 2.5 kB     00:00     

ol7_addons                                               | 2.5 kB     00:00     

ol7_latest                                               | 2.7 kB     00:00     

(1/4): ol7_UEKR5/x86_64/updateinfo                         |  53 kB   00:01     

(2/4): ol7_addons/x86_64/primary_db                        | 169 kB   00:01     

(3/4): ol7_addons/x86_64/updateinfo                        |  95 kB   00:02     

(4/4): ol7_UEKR5/x86_64/primary_db                         |  11 MB   00:12     

Resolving Dependencies

--> Running transaction check

---> Package oracle-database-preinstall-19c.x86_64 0:1.0-2.el7 will be installed

If we are using RHEL7 or CentOS7, we can pick up the RPM from the OL7 repository and install it. It will pull the dependencies from your normal repositories.

# yum install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm


yum update -y 

Verify file /etc/sysctl.conf to see all kernel-level parameters are updated by the previous commands.

Oracle user would be created. Please change the password.

[root@fundb yum.repos.d]# passwd oracle
Changing password for user oracle.
New password: 
BAD PASSWORD: The password contains the user name in some form
Retype new password: 
passwd: all authentication tokens updated successfully.

Verify file "/etc/security/limits.d/oracle-database-preinstall-19c.conf" to see all required changes are updated.

Set secure Linux to permissive by editing the "/etc/selinux/config" file, making sure the SELINUX flag is set as follows.


Once the change is complete, restart the server or run the following command.

# setenforce Permissive

If you have the Linux firewall enabled, you will need to disable or configure it.

To disable it, do the following.

# systemctl stop firewalld
# systemctl disable firewalld

Create directory from oracle user

[oracle@fundb ~]$ mkdir -p /u01/19cDB

Download the 19c(19.3) software from Oracle. Please note there are 2 types of files available to be downloaded. One is RPM-based and the other is a zip file.

I have downloaded the 19c zip file.

Unzip the 19c software at the home location and execute runInstaller.

Go to the directory where the zip file is placed and unzip

[oracle@fundb ~]$ cd /media/sf_Downloads/
[oracle@fundb sf_Downloads]$ unzip -d /u01/19cDB  LINUX.X64_193000_db_home.zip

[oracle@fundb 19cDB]$ pwd
[oracle@fundb 19cDB]$ ls
addnode     css     deinstall    env.ora        javavm  md       OPatch   oui      R            root.sh.old.1  sqlj      usm
apex        ctx     demo         has            jdbc    mgw      opmn     owm      racg         runInstaller   sqlpatch  utl
assistants  cv      diagnostics  hs             jdk     network  oracore  perl     rdbms        schagent.conf  sqlplus   wwg
bin         data    dmu          install        jlib    nls      ord      plsql    relnotes     sdk            srvm      xdk
clone       dbjava  drdaas       instantclient  ldap    odbc     ords     precomp  root.sh      slax           suptools
crs         dbs     dv           inventory      lib     olap     oss      QOpatch  root.sh.old  sqldeveloper   ucp
Open GUI and run the installer from oracle user
[oracle@fundb 19cDB]$ export DISPLAY=:0

Follow the screenshot below and start the installation.

Select the installer and create a database option

Select server class

Select Enterprise edition

Select base location

I am creating a non-container database in this post.

I know the root password so have given, else after installation it will ask to run a script via root.

I have ignored the swap space error but please increase the swap are to a minimum of 4 Gb.

Once completed you might need to run root.sh if earlier root password was not given via root user. 

Let's verify the database now

[oracle@fundb ~]$ . oraenv
ORACLE_SID = [oracle] ? GOLD19
The Oracle base has been set to /u01/app/oracle
[oracle@fundb ~]$ echo $ORACLE_HOME
[oracle@fundb ~]$ sqlplus '/as sysdba'

SQL*Plus: Release - Production on Wed Feb 10 15:37:12 2021

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release - Production

SQL> select name,open_mode from v$database;

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

If yo
u like please follow and comment

Understanding the Flow when EBS R12.2 URL is entered in the Browser

Understanding the Flow when EBS URL is entered in the Browser

In this post, I am going to share what happens when we enter an EBS URL in a browser . 

When a HTTP request is made for EBS, the clinet system will first check the hostname and port is reachable or not.Then request is received by the Oracle HTTP Server (OHS).
When the configuration of OHS is for a resource that needs to be processed by Java, such as logging into EBS, the OHS configuration will redirect the request to the Web Logic Server (WLS) Java process (OACore in this case).
WLS determines the J2EE application that should deal with the request, which is called "oacore".
This J2EE application needs to be deployed and available for processing requests in order for the request to succeed. The
J2EE application needs to access a database and does this via a datasource which is configured within WLS.

Login HTTP headers
When the EBS login works OK, the browser will be redirected to various different URLs in order for the login page to be
displayed. The page flow below shows the URLs that will be called to display the login page:

Redirects to local login page

Renders the login page

The URLs after the user enters username and password, then clicks the "login" button are shown below:


Renders user home page

Once the users home page is displayed, the logout flow also redirects to several different URL before returning to the login page:

Logout icon has been clicked
Redirects to the login page

Renders login page again

If you like please follow and comment

Quick Bash Code Snippet to Check if the IP is reachable or not

Quick Code Snippet to Check if the IP is reachable or not

In this post, I am sharing a code snippet that can be used in various different scenarios where you want to check IP reachability using a shell script.

Code Snippet

if ping -c 1 &> /dev/null
  echo "Cluster node is reachable"
  echo "Cluster node is not reachable"

We can integrate it with various other scripts to sent mail alerts or monitoring purposes.

A scenario example I am sharing.

I created a file /shared/CLUSTER_NODE_CHECK/db_nodes which contains all the servers from where I want to check the node ping.

cat db_nodes

The above code snippet, I saved in my shared location(check_cluster_node.sh) and below script will run it on the server name specified in the db_nodes file.


for prod_server in `cat ${DB_NODES} |grep -v "^#"`
echo "" 
echo "Checking ${prod_server}" >> $LOGFILE
ssh ${prod_server} '/shared/CLUSTER_NODE_CHECK/check_cluster_node.sh' >> $LOGFILE 2>&1
if [ $? != 0 ]
echo " Error on connecting ${prod_server} " >> $LOGFILE
echo ""
if [ `grep "not reachable" ${LOGFILE} |wc -l` -gt 0 ]
mail -s "NFS cluster  Reachability Check Failed $(date)" support@funoracleapps.com < $LOGFILE

If you like please follow and comment

Tar and Untar in HP UX

Tar and Untar in HP UX

Tar utility can be helpful while taking a backup. Note that tar can preserve the file's permission and its mode.

For example, I have the following directory structure:


Create a tar archive

tar cvf database.tar /home/oracle/himanshu/database

If you want to include into your archive several different directories you might use the following command:

tar cvf database.tar -I include.lst

where the -I option specifies the name of a file with a list of directories and files that you want to include into your archive.

Also, it's possible to exclude certain files and directories from your archive:

tar cvfX database.tar exclude.lst -I include.lst

List an archive contents

tar tf database.tar

Extract from an archive

tar xvfp database.tar

Please note that everything will be extracted exactly at the same location from where it was taken. If some directories do no exist then they will be created.

Tar's options

c - add to the archive, using an absolute path
x - extract from the archive
t - read the contents of an archive
f - you work with a file, otherwise, it's a tape
p - preserve file's permissions and modes
v - verbose, display the result
-I - use an include list
X - use an exclude list

If you like please follow and comment