THE WORLD DISCUSSES #PYTHIAN ON TWITTER. HAVE A QUESTION? USE OUR HASHTAG AND ASK AWAY.

11i Forms Load-Balancing Using JServ

Today I ran into an 11i E-Business Suite instance which is using Apache/JServ to do forms load-balancing. In fact, it’s my first customer to implement and successfully use Apache/JServ for load-balancing. Here is quick sketch of the instance architecture:

                  Users
                    | 11i URL:
                    | http://appsrv1.pythian.com:8000/
                    |
             ----------------
             |   appsrv1    |
             | apache/jserv |
             |  formservlet |
             ----------------
            /                \
           /                  \
----------------             ----------------
|   appsrv2    |             |   appsrv3    |
| apache/jserv |             | apache/jserv |
|  formservlet |             |  formservlet |
----------------             ----------------

            -------------------
            |    dbsrv01      |
            | CM/RepSrv       |
            |  Database       |
            -------------------

Almost all the customers that I have worked on till now, with a requirement for multiple middletier, have implemented load balancing using hardware load-balancers like Cisco Content Switch or F5 Big-IP.

This customer is running forms in servlet mode, a prerequisite for using Jserv to do load-balancing. If somebody wants to do forms load-balancing in socket mode and opts not to use any hardware LBRs, then the only option is a Metrics server.

Here is brief overview on how forms load-balancing happens in above architecture.

  • all web page and forms requests from users land on appsrv1 Apache processes
  • Apache process passes that request to the oprocmgr(appsrv1) module
  • the oprocmgr(appsrv1) with which all the JServ jvms (appsrv1, appsrv2, appsrv3) are registered, will pass the request to the least loaded JServ.

Here are some more technical details — basically, the XML tags in the Context XML file in APPL_TOP that need to be edited. As I mentioned earlier, we need to have forms servlet mode enabled. The following tags take care of that.

# forms servlet mode

s_forms_servlet_serverurl  	- /forms/formservlet
s_forms_servlet_comment 	- null

To enable JServ load-balancing, the following tags need to be updated:

# jserv load balancing

s_oacore_zone_name 		- root
s_multiwebnode 			- yes
s_oacore_trusted_oproc_nodes 	- appsrv1.pythian.com,appsrv2.pythian.com,appsrv3.pythian.com

The s_oacore_zone_name tag gets updated in the jserv.properties in zones section. It’s important that the zone name is same on all three apps servers. The s_multiwebnode tag value is used by autoconfig to generate the oprocmgr.conf file with all the node names from the s_oacore_trusted_oproc_nodes tag. The oprocmgr.conf file will look like this:

<IfModule mod_oprocmgr.c>
   Listen 8100
   ProcNode appsrv1.pythian.com 8100
   ProcNode appsrv2.pythian.com 8100
   ProcNode appsrv3.pythian.com 8100

   <VirtualHost _default_:8100>
<IfDefine SSL>
   SSLEngine off
</IfDefine>
   Port 8100
   <Location />
     Order Deny,Allow
     Deny from all
     Allow from localhost
     Allow from appsrv1
     Allow from appsrv1.pythian.com
     Allow from appsrv2.pythian.com
     Allow from appsrv3.pythian.com
     Allow from 192.168.1.100
     Allow from appsrv2
     Allow from appsrv2.pythian.com
     Allow from appsrv3
     Allow from appsrv3.pythian.com
   </Location>
   <Location /oprocmgr-service>
     SetHandler oprocmgr-service
   </Location>
   <Location /oprocmgr-status>
     SetHandler oprocmgr-status
   </Location>
  </VirtualHost>
</IfModule>

Check Metalink Note 217368.1: Advanced Configurations and Topologies for Enterprise Deployments of E-Business Suite 11i.

Happy Load-Balancing!

One Response

  1. Bharat says:

    We can implement Jserv load balancing only on top of HTTP layer load balancing. I have tried with only Jserve Load balacing but it doesnt work all the request goes to only one node.

    Thanks,
    Bharat

Leave a Reply

Start NowWith Pythian - database design, management and emergency handling capabilities...

Live Updates

pythian: RT @FN_Press2: Schooner Information Technology Teams with Pythian to Deliver Advanced Support and High... http://finanznachrichten.de/20
more



Testimonials

  • Serge Racine

    DBA, Brookfield Energy

    We are very satisfied by the service given to us by Andre and Shakir in support of our recent data quality and reorganization initiative.... more