Skip to Content

Apache Tomcat Clustering using mod_jk in BI 4.0

·  Download and Install of Apache and Mod_jk

No Apache HTTPD 64 bit availability:

In the Information for Windows User, it is recommended that 2.2 Apache HTTPD is the most stable version on Windows:



mod_jk download: Link

·        Apache HTTPD and mod_jk installation:

Run the Apache .msi file you downloaded above. The installation will ask you for these things:


Click Next..      

Select I accept and Click Next..


Details of each option on Next Page

1.       Network Domain: Enter the DNS domain in which your server is or will be registered in. For example, if your server’s full DNS name is, you would type here.

2.       Server Name: Your server’s full DNS name. From the example above, you would type here.

3.       Administrator’s Email Address: Enter the server administrator’s or webmaster’s email address here. This address will be displayed along with error messages to the client by default.

4.       For whom to install Apache Select for All Users, on Port 80, as a Service – Recommended if you’d like your new Apache to listen at port 80 for incoming traffic. It will run as a service (that is, Apache will run even if no one is logged in on the server at the moment) Select only for the Current User, on Port 8080, when started Manually if you’d like to install Apache for your personal experimenting or if you already have another WWW server running on port 80.

5.       The installation type. Select Typical for everything except the source code and libraries for module development. With Custom you can specify what to install. A full install will require about 13 megabytes of free disk space. This does not include the size of your web site(s).

6.       Where to install. The default path is C:\Program Files\Apache Software Foundation under which a directory called Apache2.2 will be created by default. You may specify any other Path here               


Click Next..


The installation has completed successfully. You will see the Apache in All Programs list

·        Installation of Mod_jk

There is no installation or no executable required. We just need to copy mod_jk from the download directory to the new Apache (modules) Directory.


·        Configuration of Tomcat

  1. Server.xml


  1: Apache1.png


III.          2:Apache1.png


sssss      3:  Apache1.png


·  Worker.Properties configuration:

We need to create this file in conf directory of Apache with below lines


  1. worker.list=balancer
  2. worker.worker1.port=8009
  3.<Tomcat 1 IP Address>
  4. worker.worker1.type=ajp13
  5. worker.worker1.lbfactor=1
  6. worker.worker2.port=8009
  7.<Tomcat 2 IP Address>
  8. worker.worker2.type=ajp13
  9. worker.worker2.lbfactor=1
  10. worker.balancer.type=lb
  11. worker.balancer.balance_workers=worker1,worker2
  12. worker.balancer.method=B
  13. Worker.balancer.sticky_session=True


·    Httpd.conf configuration: Add below given entries


LoadModule    jk_module  modules/

JkWorkersFile “<Installation Directory>/Apache Software Foundation/Apache2.2/conf/”

JkLogFile “<Installation Directory>/Apache Software Foundation/Apache2.2/mod_jk.log”

JkLogLevel debug

JkLogStampFormat “[%a %b %d %H:%M:%S %Y] “

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkMount /* balancer


·   Web.xml configuration for BusinessObjects Session serialization:

The entry of distributable=true needs to be manually done. <BI 4.0 Install Home directory>\Tomcat6\webapps\BOE\WEB-INF\web.xml


Restart Apache

Tomcat Load Balancing now is configured.

You must be Logged on to comment or reply to a post.
      • Hi Animesh ,

        Currently – we are using BO 4.1 SP4 patch 2.

        Load Balancer – DNS Roundrobin

        when load balancer url is used we are getting the below error.

        After a few minutes of being logged in to BI Launch pad or CMC users get the following error:

        “HTTP Status 500 – java.lang.RuntimeException: org.apache.jasper.JasperException: java.lang.NullPointerException: while trying to invoke the method

        com.businessobjects.bip.core.web.appcontext.AppWebSessionContext.getLangDirection() of a null object returned from


        Could you please let me know what could be the issue or how can I debug this issue.

        I apreciate your help.



        • We had the same problem — turns out our load balancer had a 15-minute timeout by default.  We increased it to 90 minutes and the problem went away.

          • We are using DNS Round Robin and the admin team is not able to resolve the above issue.

            they are saying session persistence is not available with DNS Round Robin.We can not do sticky sessions on DNS Round robin.

            This is the resolution we got from SAP Suport:

            Configure load balancer with sticky sessions with persistence setting set to appropriate value. The default persistence setting is only 2 minutes, which should be  higher, for example 1 hour.

          • you can’t use simple DNS round robin if you can’t set session persistence. That’s the final answer and the truth.
            You need to find a way to setup load balancing with ability to set session persistence.
            Either with hardware load balancer, or use a web server as load balancer (Apache for example).
            there is no other choice.

          • Hi Denis ,

            As DNS Round Robin is not working because of session persisence issues. Now Team has proposed new solution to use

            Windows cluster (NLB). I am not familiar with Supported BOBJ Load balancers. Can you please help me understanding is that a suggested load balancer for BOBJ?

            We are looking for Cost effective and supported configurations without any issues.



          • Hi Denis ,

            As DNS Round Robin is not working because of session persisence issues. Now Team has proposed new solution to use

            Windows cluster (NLB). I am not familiar with Supported BOBJ Load balancers. Can you please help me understanding is that a suggested load balancer for BOBJ?

            We are looking for Cost effective and supported configurations without any issues.



          • reading about Microsoft cluster here : Windows Clustering: Network Load Balancing (NLB); Clustering Services
            that looks like a total overkill and not exactly what should be used to balance simple web requests to web app servers, but if your team knows this product and it can do web session persistence – sure, you can use it.

            We do not have a list of supported load balancers because there are too many on the market and we can’t evaluate all.
            Some of the ones most often used with our product are BIG IP, Apache web server, Netscaler …

            There is no preference for our product on which LB to use.

            The only requirement – it has to support session persistence (cookie or source IP based) – that’s it.

          • Thanks Denis for the useful information .

            Currently – we are using BO 4.1 SP4 patch 2. Can you please let me know what is the load balancer configured in your project? and do you see any issues with it?

          • Hi Denis ,

            Based on your comments , I communicated same thing with the team and here is the one they proposed

            Load Balancer A10

            But I asked for apache web server .



          • Hi Denis ,

            Could you please help me here.

            I came to know that F5,BIG IP load balancers are not available from the vendor . So they mentioned they can support something similar to the F5,BIG IP which is Load Balancer A10.  I also found out they can even do Apache webserver configuration.

            So Can you please let me know if using Apache webserver , do you see any issues or is it good to go with solution.





          • That’s what this article is about 🙂

            But note that Apache is a software load balancer as opposed to F5 which is hardware.

    • Have you enabled ‘node’ configuration in Tomcat as well ? That is required for failover ?

      – Also have you tried mod_proxy for testing fail over scenario ?

  • For the ReplicationValve, the filter should be kept empty as documented in SAP KBA  1529429. You don’t know if BOE webapps use *.html path with behind a change in session.

    Hope this helps