Load Balancing Techniques For Release 11I and Release 12 E-Business Environments
Load Balancing Techniques For Release 11I and Release 12 E-Business Environments
Load Balancing Techniques For Release 11I and Release 12 E-Business Environments
12 E-BUSINESS ENVIRONMENTS
Venkat Perumal
IT Convergence
Introduction
Any application server based on a certain CPU, memory and other configurations has a limit. Once the server
reaches its capacity, performance is impacted. In order to provide better performance, a server can be replaced by a
more efficient server to handle the load. A better option is to implement cost effective solutions such as load
balancing to share the load with additional servers of similar configurations. Load balancing can be achieved based
on response time, least connections, least bandwidth or response time. The load can be balanced at different levels
such as server, network or operating system. One of the primary goals of load balancing is to distribute the load
among many servers, so that the overall throughput of the system is improved.
The purpose of this paper is to explore Oracle’s E-Business suite 11i load balancing options. Although there are
number of ways to achieve load balancing, this paper explores five primary load balancing techniques associated
with this application.
The first four techniques are associated with middle tier, and Parallel Concurrent Processing (PCP) focuses on
concurrent manager tier.
Depending upon the number of users, the technique used in DNS load balancing varies. For an 11i application
environment, a DNS technique called Round Robin Domain Name Service (RRDNS) is widely used, where the user
requests are forwarded on a cyclical fashion.
As shown in Diagram 1, when a user requests the URL, DNS first translates the domain name to IP address and
routes back the request to webnode1, the second user request onto webnode2 and the third user request onto
webnode3, and thus in a cyclical fashion the user load is balanced among the web servers. This is quite inexpensive
and easy to setup.
Oracle’s E-Business suite 11i applications’ URL is based on hostname and domain name, for example
http://itcerp.itconvergence.com, where itcerp is the hostname where the web server is installed. Since there is more
than one web server involved and the URL remains static for all users, the virtual host naming technique is used to
map the different web servers to an assigned virtual host. A virtual host name is mapped to multiple IP addresses in
such a way that when the URL is accessed, it is translated and the request is passed on to the particular web server.
Scenario
Medium range business clients with 300 to 500 concurrent users would be ideal for DNS load balancing. In most
cases the web server and forms server will be installed on the same host, and DNS load balancing can be used to
load balance both self-service and forms requests.
Session Persistence
One of the important considerations for HTTP load balancer is session persistence. There are two types of
applications with respect to session persistence – stateful and stateless. A stateful application maintains session state
information within its runtime environment between successive client calls, where as a stateless application
maintains no such information within its environment. A stateless application may persist state information in a
common store such as a database or in the client browser. The Oracle E-Business suite is a stateful application, so
while configuring the HTTP load balancer, session persistence should be configured, such that all client requests
from one client session are sent to the same web node. Otherwise, there is a high possibility that user requests may
be not be served as expected.
Some HTTP load balancers use a sticky round robin algorithm to load balance incoming HTTP and HTTPS
requests. When a new HTTP request is sent to the load balancer, it is forwarded to an application server instance
based on a simple round robin scheme. Subsequently, this request is “stuck” to this particular application’s server
instance. From the sticky information, the load balancer first determines the instance to which the request was
previously forwarded. If that instance is found to be alive, the load balancer plug-in forwards the request to the same
application server instance. Therefore, all requests for a given session are sent to the same application server
instance.
HTTP Configuration
In order to configure the HTTP load balancer with Oracle’s E-Business suite 11i, there are specific patches and
configurations on the application techstack that need to be performed. With respect to the application context file,
the following parameters should be configured in order to achieve HTTP load balancing:
Scenario
The best case scenario to implement HTTP load balancer in an E-Business Suite 11i environment is for a high
number of self-service application users. If forms server is installed on the same node as the web server, this
technique also load balances forms users as well.
In order to configure Forms metric server load balancing, at least 2 Forms servers are required. One of the Forms
servers acts as the primary server and other one as a secondary server.
User request
Least Loaded Server
Web Browser
Web Listener
Load Load
Balancer Balancer
Forms Client
Server
CGI
Load Information (number
of forms processes)
Forms Run Time
Database
In diagram 3, the load balancer client periodically sends load information to the load balancer server. When user
request comes in, the Forms cgi-bin executable requests the load balancer server for the name of the least-loaded
system that is available. The Forms cgi-bin executable dynamically creates an HTML page with the name of the
least-loaded system on which to run the Forms server, and returns that HTML page to the user’s web browser. The
web browser then requests the Java applet to be downloaded from the host specified in the HTML page which is the
least loaded forms server. The Java applet sends a request to the Forms server requesting for a particular Form
Scenario
Forms metric server load balancing is widely implemented to address core forms load. If there are a high number of
core forms users, this technique will be highly effective to counter the load. In some cases, the web server will be
part of the primary Forms metric server in that case primary server will handle the requests from the self service
application, as well as core forms user.
It is beneficial to spread the servlet application load among multiple JServ processes, especially when the
application is run on a multiprocessor server or if the servlets and HTTP server are run on separate nodes. Running
multiple Apache JServ processes generally results in higher through put and shorter response time, even on a single-
processor host.
As shown in diagram 4, by configuring multiple Web nodes and multiple Java Virtual Machines across different
servers, Oracle Application requests are load balanced. In 11i applications, a user request will be processed by one
of the following predefined JVM groups.
Core Group - Default group
Forms Group - Forms Servlet request
Discoverer Group - Discoverer 4i request
Web Services Group - XML Gateway, Web Services and SOAP requests
It is common to increase the number of JVM defined per group even in a single-node installation. Error messages
like ‘java.lang.Out Of Memory Error’ indicate depleted JVM, which suggest a need for multiple Java Virtual
Machines.
Node 1 Node 2
Scenario
Apache Jserv load balancing will be ideal for an E-Business suite 11i environment with a very high number of self
service and core forms users.
The Internal Monitor (IM) monitors the Internal Concurrent Manager, and restarts any failed ICM on the local node.
During a node failure in a PCP environment the IM will restart the ICM on a surviving node (multiple ICM’s may
be started on multiple nodes, but only the first ICM started will remain active, all others will be terminated). There
should be an Internal Monitor defined on each node where the ICM may migrate.
Node1 Node2
5
ICM Service ICM
Service
Manager Manager
Internal Internal
Standard Standard
Manager Manager
Workflow
Notification Forms Listener
PCP uses an operating system ping command and checks database dictionary views for the availability of Internal
Concurrent Manager and also to check for any failures. If a failure occurs on the primary node, all concurrent queues
will be migrated onto the secondary nodes. Once the primary node recovers, fail back occurs. During the fail over
scenario, concurrent requests running on the failed node will be terminated, so the terminated requests must be
rescheduled. Rescheduling is a manual process that should be done during a failover.
PCP Configuration
At least two nodes are required to setup Parallel Concurrent Processing. Node configuration as primary and
secondary is setup in the concurrent manager definition screen under system administrator responsibility.
Conclusion
Oracle E-Business load balancing options can be effectively used to improve performance and scalability. One or
more techniques can also be combined to design a robust E-Business environment. Most of the load balancing
options discussed in this paper is certified by Oracle.
Reference
1. Metalink Note:217368.1 Advanced Configurations and Topologies for Enterprise Deployments of E-Business
Suite 11i.
2. Metalink Note 279956.1 Oracle E-Business Suite Release 11i with 9i RAC: Installation and Configuration using
AutoConfig.
3. Oracle Part No A73071-01 Forms Server Release 6i.
4. Metalink Note 148155.1 Load balancing implementation and trouble shooting in 11.5.x using metric server.
5. Steven Blog http://blogs.oracle.com/schan/