cancel
Showing results for 
Search instead for 
Did you mean: 

Is clustering still needed for ISS and/or Apache Tomcat, if load balancer appliance is present?

Former Member
0 Kudos

Currently I have the following BI4.x cluster configuration: three branches each with ISS, apache tomcat, and BI4.2. HANA house two CMS. I plan to add Citrix NetScaler Load Balancer (equalviant to F5 load balancer) infront of the cluster.

Do I still need to cluster IIS if NetSclaer is the load balancer in case server 1's IIS in Branch 1 fails?

Do I still need to cluster Apache Tomcat if NetSclaer is the load balancer in case server 2's Apache tomcat in Branch 2 fails?

Below is the setup I currently have, except for the NetScaler LB, which will be implemented in the future.

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

NetScaler LB appliance

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

Branch 1

Server 1 - IIS

Server 2 - Apache tomcat and BI4.2

Branch 2

Server 1 - IIS

Server 2 - Apache tomcat and BI4.2

Branch 3

Server 1 - IIS

Server 2 - Apache tomcat and BI4.2

Your thoughts and advice is appreciated.

Thank you

Accepted Solutions (0)

Answers (5)

Answers (5)

amitrathi239
Active Contributor
0 Kudos

according to your screenshot both tomcats needs to be configured in load balancer for load balancing+failover.there is no need of extra IIS/apache on top of tomcat.once both tomcat IP's are configured in load balance with the new Virtual IP or DNS name you can access the BO services and load balance will redirect the request to tomcat1 or 2 based on the load balancing settings in load balancer.

Former Member
0 Kudos

to-be.pngClarifying my previous questions - Please see the attached file for To-Be architecture

Context about diagram:

  • Each square box represent a VM
  • VMs are behind the LB appliance
  • IIS or Apache (Web Server for static content)
  • Tomcat 8 (version packaged with BI 4.2 SP3; for dynamic content)
  • Version of Business Objects - BI 4.2 SP3
  • CMS is in HANA SPS13 Tomcat and BI will be clustered for application awareness in-case a server failure. User will not loose their work and be still logged in (in theory).

1. I'm confused where static content (e.g. jpg, html, css) caching occur, if not at LB appliance (F5 or Netscaler)?

2. If the answer for #1 is at web server (Apache or IIS) then do I need to cluster the web servers with LB appliance present? (We don't think so but would like to verify)

Thank you

Former Member
0 Kudos

TO BE Env:

LB

Apache Tomcat 8 (from BOE installation)

BI4.2 SP03

HANA SPS12

Thank you Dennis. We decided to cluster the Apache tomcat servers and remove the IIS since the LB is acting as a reverse proxy. This will address our concern about content transfer if server 1: tomcat goes down then users are transferred to server 2: tomcat without loosing their work (re-do their work) in BI launchpad.

Follow up questions:

1. Do we use tomcat's cluster name or individual server names to the LB?

2. Also, since we are clustering BO, can (or do) we LB BO?

3. Do we use the BO's cluster name or individual server names to the LB?

Thank you in advance

denis_konovalov
Active Contributor
0 Kudos

1. See BOE pattern book on the subject -

https://wiki.scn.sap.com/wiki/display/BOBJ/Business+Intelligence+Platform+-+Pattern+Books+Index

2. There is no such thing as LB for BO. BO has internal LB and Failover mechanisms, which are not controllable from outside.

3. See #2.

Former Member
0 Kudos

Repling back to:

1. Went to the link you provide there are couple of PB there. I am looking through PB on Updating from SAP BusinessObjects BI 4.x to SAP BI 4.2. Is that the correct one?

I should be clearer on my questions: Do you provide the load balancer with tomcat's cluster name or individual server names?

2. Our thought process is why not utilize the LB appliance's capability for BIP too; use the LB to balance the load for BIP (cluster).

Do you provide the load balancer with BIP's cluster name or individual server names?

We are using a LB in-front of Tomcat because users will access the vURL globally via LB ("traffic cop", reverse proxy). Also, we want to use a capability of the LB, which address latency experienced by the user's PC location.

Thank you in advance and sorry if I am repeating the questions that you all ready answered. Just want to clearly understand things before doing it as we have short deadline.

Thank you

denis_konovalov
Active Contributor
0 Kudos

1. No, you need to look at architecture PB. It talks about creating environment with LB in front of 2 tomcats.

2. You can't. It doesn't work like that. BI Platform uses internal mechanisms to balance load. You can't load balance it via external LB.

LB's cannot address user PC latency. If you enable advance cache or other capabilities of the LB - you will have issues with BOE.
Your LB needs to do 1 thing - maintain session persistence. And it should not do any of the caching, filtering etc of the traffic.

Former Member
0 Kudos

Thank your for your inputs. It's helping with our design. I don't see an architecture PD from the URL you provided, https://wiki.scn.sap.com/wiki/display/BOBJ/Business+Intelligence+Platform+-+Pattern+Books+Index

Am I going to the right place?

Could you provide clarification about the statement, "If you enable advance cache or other capabilities of the LB - you will have issues with BOE.....Your LB needs to do 1 thing - maintain session persistence. And it should not do any of the caching, filtering etc of the traffic."

1. Where is caching happening if not at LB?

2. Is cache happening at Tomcat (split deployment) without Apache or IIS?

3. We are unsure about where compression is being done; at LB or Tomcat (GZIP)?

Appreciate your inputs

Trieu

denis_konovalov
Active Contributor
0 Kudos

1. caching happens in browser and in the Tomcat , both places it is controlled by BOE (to some extend).
When you cache sessions on LB - you add uncertainty and periodically it leads to big issues. LB doesn't know what happening with BOE session, so it shouldn't cache it.

2. Split deployment has nothing to do with cache. Split deployment is to run static content on web server (Apache) and dynamic content on tomcat (webapp server) - each designed to perform best with those content types.
3. At Tomcat. But you can experiment with LB. I just wouldn't recommend it.

Former Member
0 Kudos

Thank you Denis.

1. Sorry I was not specific about caching. I meant to ask, where is caching static content (e.g. jpg, html, css) happening, if not at LB?

2. Do we need to cluster Apache with LB present? (We don't think so but would like to verify and confirm)

Thank you

Former Member
0 Kudos

bump

Former Member
0 Kudos

Hi Dennis thanks for the prompt response. To answer your questions:

Are your users use 3 different URL's to access bilaunchpad?

No, Users access the BI Launchpad with one URL.


Why do you even have IIS in front of tomcats ?

IIS act as a proxy server to hind the back-end servers, e.g. apche tomcat and BI servers. Plus, it's what our archtiect dicated to do.


With the addition of Netscaler VPX Load Balancer, I was thinking about unclustering the IIS and Apache Tomcat. Leave it to the LB to manage the traffic/work load, session transfer, and content transfer. A use cases would be like this:

User auth by SSO on Netscaler LB, then LB can perform sso (authenticate on behalf of the user) to the server-1. If suddenly server-1 fails and traffic got redirected to server-2 , server-2 asks for Authentication, netscaler sso will kick in again, user need not re-authenticate. But server-2 may not be aware of what user was doing on server-1, unless there the LB takes care of that session and content transfer, OTHERWISE the task that got interrupted may have to be performed again by the user.


From your experience is clustering still needed on back-end servers like IIS and/or Apache Tomcat to ensure HA, session and content transfer, so users wouldn't notice so much?

Thank you ahead,

denis_konovalov
Active Contributor
0 Kudos

Based on 1 - you already have a load balancer, so why change to Netscaler ?
Based on 2 - Apache Web server is a better server to use as the proxy vs. IIS. Based on industry practices.
As on the 3 - yes, LB can fulfil the role of the proxy and failover user session to another tomcat. However, the whole "in-interrupted user experience" thing depends on the exact user workflow at the time of failure.
If user logs into Bilaunchpad and is on the main screen, tomcat 1 dies - session failsover to tomcat 2 seamlessly (tomcat clustering required). But if user is refreshing webi doc - failover might not be smooth.

So, in general - IIS clustering not needed. Specially if t is just the proxy.
Tomcat cluster is needed for any session failover.

denis_konovalov
Active Contributor
0 Kudos

the way I understand the role IIS plays when used in front of tomcat's - its irrelevant if it is clustered or not.
Tomcat clustering is always optional no matter if what you have in front of them.

issues with clustering tomcats.
1748276 - BI 4.0 - Error: "Logon denied: Your session is not valid" in BI Launch Pad using Tomcat cluster

2088195 - BI 4.1 - Error: "Logon denied: Your session is not valid" in BI Launch Pad using Tomcat cluster failover

In your configuration if you already have 3 IIS/3 tomcats - you already have some sort of LB in front of them, or are your users use 3 different URL's to access bilaunchpad ?

Why do you even have IIS in front of tomcats ? just curious.