Hardware clustering/load balancing/failover with Tomcat
Hello forum!
I recently bought a Cisco 1801, and it sure is capable! Anyhow, I've got a hobby website that is getting a fair bit of traffic - approaching too much for one node to handle and it's time to start thinking about distributing the load.
I'd like to do a little clustering of server nodes running Apache Geronimo, which is J2EE running atop Apache Tomcat. For the sake of keeping things generic, let's just call it Tomcat because it configures the same way.
I do not run Apache HTTP Server as a proxy, I only run Tomcat directly connected to the internet. I do this for performance reasons.
Anyhow, I'm wondering if any of you evil geniuses could suggest a way that I could cluster Tomcat nodes directly using the router to serve as a hardware load balancer and have the whole sticky session thing with failover, etc... All of the documents I find on the subject discuss clustering by way of Apache HTTP with Mod_JK.
I have already asked this question on the hardware side, and got great information about the capable load balancing features my router sports (but limited compared to Cisco CSS products.)
Now I'm wondering if anyone has experience taking an open source application server like Geronimo or Tomcat or JBoss and clustering it using hardware load balancing. What kinds of Tomcat configurations, if any, do I need to add for things like sticky sessions and failover? Or, is all that automatic?
Thanks so much for reading and for any replies. If there is a better forum for my question, please direct me there.
Cheers,
Dave Woldrich
http://CardMeeting.com
This occurs rarely when the Tomcat process is not able to connect to the database. The database connection problem is an internal cause which manifests externally as missing fields in reports.
Workaround: Restart the Apache process and the Tomcat process. From the CLI on your CiscoWorks Server, enter the following commands in the specified sequence:
1. pdterm Apache
2. pdterm Tomcat
3. pdexec Tomcat
4. pdexec Apache
Similar Messages
-
Load balancing, failover and fallback in Non-Clustered WebLogic environment
hi,
Has anyone implemented WebLogic 10.3.3 (or 10.3.4) in a Non-Clustered environment, but also got load balancing, failover and fallback work?
We were successful in getting failover working using t3://server1:7001,server2:7002 provider URL, but not load balancing or fallback.
The fallback is working when it was connecting to server2 and if we kill server2, then it switches to server1, but not when server2 is still running while server1 comes back.
All we need to find a way to enforce fallback to primary site, even if secondary which the client connected is still up and running and primary site comes back.
Any help appreciated.
Thanks.
Best regards,
Balahi,
Has anyone implemented WebLogic 10.3.3 (or 10.3.4) in a Non-Clustered environment, but also got load balancing, failover and fallback work?
We were successful in getting failover working using t3://server1:7001,server2:7002 provider URL, but not load balancing or fallback.
The fallback is working when it was connecting to server2 and if we kill server2, then it switches to server1, but not when server2 is still running while server1 comes back.
All we need to find a way to enforce fallback to primary site, even if secondary which the client connected is still up and running and primary site comes back.
Any help appreciated.
Thanks.
Best regards,
Bala -
OSB jms clustering - load balancing seems to be not working
Hi All,
I have one admin server and two managed servers running ( one of these managed server is running in the remote linux machine) in a cluster
I have connectionfactory created with load balance enabled with round robin
and server affinity is disabled
I have queue created as uniformly distributed Q
I have a proxy service with load balancing as roundrobin and endpoint URL as below
jms://rdoelapp001011:61703,rdoelapp001013:61703/synergyConnectionFactory1/MM_gridQ0
If I execute this proxy sending messages it always go to one server only. There is no message going to the other server.
If I shutdown the server that receives messages then the other server is receiving messages. Seems like fail-over is working but not the load-balancing
There is one point may be worth mentioning here is, from the admin console if I look at the servers for the clusters it has below information
Name State Drop-out Frequency Remote Groups Discovered Local Group Leader Total Groups Discovered Group Leaders Groups Primary
synergyOSBServer1 RUNNING Never 0 synergyOSBServer1 1 synergyOSBServer1 *{synergyOSBServer1}* 0
synergyOSBServer2 RUNNING Never 0 synergyOSBServer1 1 synergyOSBServer1 *{synergyOSBServer1, synergyOSBServer2}* 0
one server has groups as {synergYOSBServer1} instead of {synergyOSBServer1, synergyOSBServer2}. Does that look correct?
here is my jms xml file
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
*<connection-factory name="synergyConnectionFactory1">*
*<sub-deployment-name>synergySubDeploy1</sub-deployment-name>*
*<default-targeting-enabled>false</default-targeting-enabled>*
*<jndi-name>synergyConnectionFactory1</jndi-name>*
*<client-params>*
*<client-id-policy>Restricted</client-id-policy>*
*<subscription-sharing-policy>Exclusive</subscription-sharing-policy>*
*<messages-maximum>10</messages-maximum>*
*</client-params>*
*<transaction-params>*
*<xa-connection-factory-enabled>false</xa-connection-factory-enabled>*
*</transaction-params>*
*<load-balancing-params>*
*<load-balancing-enabled>true</load-balancing-enabled>*
*<server-affinity-enabled>false</server-affinity-enabled>*
*</load-balancing-params>*
*<security-params>*
*<attach-jmsx-user-id>false</attach-jmsx-user-id>*
*</security-params>*
*</connection-factory>*
<uniform-distributed-queue name="errorQ">
<sub-deployment-name>synergySubDeploy1</sub-deployment-name>
<default-targeting-enabled>false</default-targeting-enabled>
<jndi-name>errorQ</jndi-name>
<load-balancing-policy>Round-Robin</load-balancing-policy>
<forward-delay>-1</forward-delay>
<reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>
</uniform-distributed-queue>
<uniform-distributed-queue name="undlvQ">
<sub-deployment-name>synergySubDeploy1</sub-deployment-name>
<default-targeting-enabled>false</default-targeting-enabled>
<jndi-name>undlvQ</jndi-name>
<load-balancing-policy>Round-Robin</load-balancing-policy>
<forward-delay>-1</forward-delay>
<reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>
</uniform-distributed-queue>
*<uniform-distributed-queue name="MM_gridQ0">*
*<sub-deployment-name>synergySubDeploy1</sub-deployment-name>*
*<default-targeting-enabled>false</default-targeting-enabled>*
*<jndi-name>MM_gridQ0</jndi-name>*
*<load-balancing-policy>Round-Robin</load-balancing-policy>*
*<forward-delay>5</forward-delay>*
*<reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>*
*</uniform-distributed-queue>*
<saf-imported-destinations name="synergySAFImportedDest1">
<sub-deployment-name>synergySubDeploy1</sub-deployment-name>
<default-targeting-enabled>false</default-targeting-enabled>
<saf-queue name="gridQ0">
<remote-jndi-name>MB_gridQ0</remote-jndi-name>
<local-jndi-name>gridQ0</local-jndi-name>
<non-persistent-qos>At-Least-Once</non-persistent-qos>
<time-to-live-default>0</time-to-live-default>
<use-saf-time-to-live-default>false</use-saf-time-to-live-default>
<unit-of-order-routing>Hash</unit-of-order-routing>
</saf-queue>
<jndi-prefix>MB_</jndi-prefix>
<saf-remote-context>synergySAFContext1</saf-remote-context>
<saf-error-handling>synergySAFErrorHndlr1</saf-error-handling>
<time-to-live-default>0</time-to-live-default>
<use-saf-time-to-live-default>false</use-saf-time-to-live-default>
<unit-of-order-routing>Hash</unit-of-order-routing>
</saf-imported-destinations>
<saf-remote-context name="synergySAFContext1">
<saf-login-context>
<loginURL>t3://rdoelapp001013:7001</loginURL>
<username>weblogic</username>
<password-encrypted>{AES}z9VY/K4M7ItAr2Vedvhx+j9htR/HkbY2LRh1ED+Cz5Y=</password-encrypted>
</saf-login-context>
<compression-threshold>2147483647</compression-threshold>
</saf-remote-context>
<saf-error-handling name="synergySAFErrorHndlr1">
<policy>Log</policy>
<log-format xsi:nil="true"></log-format>
<saf-error-destination xsi:nil="true"></saf-error-destination>
</saf-error-handling>
</weblogic-jms>
Any help will be greatly appriciated
Edited by: 818591 on Feb 16, 2011 11:28 AMI am not getting you here "the right approach is to make OSB run on the man server cluster and not on admin server. "
I have a jms proxy service that I created from admin console
And also I have gone thru the step 5 in the link below
http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/deploy/config.html#wp1524235
If I am not wrong, the proxy service endpoint URI determines where it is pointing to. If it is a cluster environment, it should point to a clustered address
My proxy has below endpoint URI
jms://rdoelapp001011:61703,rdoelapp001013:61703/synergyConnectionFactory1/MM_gridQ0
and rdoelapp001011:61703,rdoelapp001013:61703 is my cluster address
As per your suggestion "To fix your problem, *make osb to run on the cluster* and specify the same URL for the jms proxy service"
Could you please provide some instruction how would I "make osb jms proxy service to run in a cluster"
As a note, I have Q defined as a distributed Q and connection factory targets to the cluster. UDQ also targtes to the cluster.
Just for a testing I have created another manged server running local to the machine where my admin server is running
And I created a proxy by following steps as I mentioned above and with endpoint URI as below
jms://rdoelapp001011:61703,rdoelapp001013:61703,*rdoelapp001011:61700*/synergyConnectionFactory1/MM_gridQ0
where the new address of my cluster is rdoelapp001011:61703,rdoelapp001013:61703,rdoelapp001011:61700
It did create consumers in both the managed servers in the cluster that are running locally, but no consumers in the remote managed server.
So I am kind of leaning towards thinking that there is some incorrect setup for the remote managed server and may be admin server is not able to communicate to the remote server for some reason but not sure about it..
As a note the cluster is setup to communicate using "unicast" channel
and I created a channel in each manged server with the same name
here is the cluster configuration
<name>synergyCluster1</name>
<cluster-address>rdoelapp001011:61703,rdoelapp001013:61703,rdoelapp001011:61700</cluster-address>
<default-load-algorithm>round-robin</default-load-algorithm>
*<cluster-messaging-mode>unicast</cluster-messaging-mode>*
*<cluster-broadcast-channel>synergyChannel1</cluster-broadcast-channel>*
*<number-of-servers-in-cluster-address>3</number-of-servers-in-cluster-address>*
</cluster>
here are the twoOSBserver configuration
<server>
<name>synergyOSBServer1</name>
<machine xsi:nil="true"></machine>
<listen-port>61703</listen-port>
<cluster>synergyCluster1</cluster>
<web-server>
<web-server-log>
<number-of-files-limited>false</number-of-files-limited>
</web-server-log>
</web-server>
<server-debug>
<debug-scope>
<name>weblogic.jms.saf</name>
<enabled>true</enabled>
</debug-scope>
<debug-jmssaf>true</debug-jmssaf>
<debug-saf-sending-agent>true</debug-saf-sending-agent>
</server-debug>
<listen-address>localhost</listen-address>
<network-access-point>
*<name>synergyChannel1</name>*
*<protocol>cluster-broadcast</protocol>*
*<listen-address>localhost</listen-address>*
*<listen-port>61702</listen-port>*
<http-enabled-for-this-protocol>true</http-enabled-for-this-protocol>
<tunneling-enabled>false</tunneling-enabled>
*<outbound-enabled>true</outbound-enabled>*
*<enabled>true</enabled>*
<two-way-ssl-enabled>false</two-way-ssl-enabled>
<client-certificate-enforced>false</client-certificate-enforced>
</network-access-point>
<jta-migratable-target>
<user-preferred-server>synergyOSBServer1</user-preferred-server>
<cluster>synergyCluster1</cluster>
</jta-migratable-target>
</server>
<server>
<name>synergyOSBServer2</name>
<ssl>
<enabled>false</enabled>
</ssl>
<machine xsi:nil="true"></machine>
<listen-port>61703</listen-port>
<listen-port-enabled>true</listen-port-enabled>
<cluster>synergyCluster1</cluster>
<web-server>
<web-server-log>
<number-of-files-limited>false</number-of-files-limited>
</web-server-log>
</web-server>
<listen-address>rdoelapp001013</listen-address>
<network-access-point>
*<name>synergyChannel1</name>*
*<protocol>cluster-broadcast</protocol>*
*<listen-address>rdoelapp001013</listen-address>*
*<listen-port>61702</listen-port>*
<http-enabled-for-this-protocol>true</http-enabled-for-this-protocol>
<tunneling-enabled>false</tunneling-enabled>
*<outbound-enabled>true</outbound-enabled>*
*<enabled>true</enabled>*
<two-way-ssl-enabled>false</two-way-ssl-enabled>
<client-certificate-enforced>false</client-certificate-enforced>
</network-access-point>
<java-compiler>javac</java-compiler>
<jta-migratable-target>
<user-preferred-server>synergyOSBServer2</user-preferred-server>
<cluster>synergyCluster1</cluster>
</jta-migratable-target>
<client-cert-proxy-enabled>false</client-cert-proxy-enabled>
</server>
<server>
Edited by: 818591 on Feb 18, 2011 11:26 AM -
Does anyone have a recommended network, hardware and software configuration guide for a Portal installation running with multiple gateways load balanced (ie one URL) that talk to multiple servers?
David,
We've used Resonate (software) to load balance the gateways. It allows
you to group all the gateways under 1 virtual URL and load balance the
incoming connections over each gateway depending on the rules that you
define in Resonate. Look in the SUN portal whitepapers there is one that
talks about it specifically.
As far as load balancing the calls to the portals, the gateways will
automatically load balance across all the portals that they know about
using a simple round-robin rotation. You may be able to use Resonate in
front of the portals but you may need to activate persistance within
Resonate to ensure that the user always ends up on the portal that he
established his initial connection on (if you want that), check with Sun
on this one.
David Broeren wrote:
Recommended configuration for load balanced Portal with load balancer,
multiple gateways and multiple servers.
Does anyone have a recommended network, hardware and software
configuration guide for a Portal installation running with multiple
gateways load balanced (ie one URL) that talk to multiple servers?
Try our New Web Based Forum at http://softwareforum.sun.com
Includes Access to our Product Knowledge Base! -
Connection string in listener log file for loading balance/failover
Hi Experts,
I have 4 node RAC for oracle 10g2 in rad hate 5.0
We creaed service dbsale ( sale1,2 as pr imary and sale3/4 as available) with loading balance/failover.
The remote user created a local TNS as
localmarket =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 155.206.xxx.xx)(PORT = 1521))
(LOAD_BALANCE = OFF)
(CONNECT_DATA = (SERVICE_NAME = dbsale))
From server side, I saw that user send two request connection string. one fail and another is OK.
It seems that fail connecting come from failover/loading balance from dbsale3?
Why do we get two connection string in listener log file?
Which difference is between two connection string?
Where does system change these connection string?
Thanks for your explaining.
Jim
==============listener.log message
[oracle@sale log]$ cat listener_sale.log|grep pmason
15-SEP-2009 13:52:24 * (CONNECT_DATA=(SERVICE_NAME=dbsale)(CID=(PROGRAM=oracle)(HOST=rock)(USER=test ))) * (ADDRESS=(PROTOCOL=tcp)(HOST=161.55.xxx.xx)(PORT=54326)) * establish * dbsale * 0
15-SEP-2009 13:52:25 * (CONNECT_DATA=(SERVICE_NAME=dbsale)(CID=(PROGRAM=oracle)(HOST=rock)(USER=test ))(SERVER=dedicated)(INSTANCE_NAME=sale3)) * (ADDRESS=(PROTOCOL=tcp)(HOST=161.55.xxx.xx)(PORT=54327)) * establish * dbsale * 12520
15-SEP-2009 13:52:30 * (CONNECT_DATA=(SERVICE_NAME=dbsale)(CID=(PROGRAM=oracle)(HOST=rock)(USER=test ))) * (ADDRESS=(PROTOCOL=tcp)(HOST=161.55.xxx.xx)(PORT=54329)) * establish * dbsale* 0
15-SEP-2009 13:52:47 * (CONNECT_DATA=(SERVICE_NAME=dbsale)(CID=(PROGRAM=oracle)(HOST=rock)(USER=test ))) * (ADDRESS=(PROTOCOL=tcp)(HOST=161.55.xxx.xx)(PORT=54332)) * establish * dbsale * 0
15-SEP-2009 13:52:47 * (CONNECT_DATA=(SERVICE_NAME=dbsale)(CID=(PROGRAM=oracle)(HOST=rock)(USER=test ))(SERVER=dedicated)(INSTANCE_NAME=sale3)) * (ADDRESS=(PROTOCOL=tcp)(HOST=161.55.xxx.xx)(PORT=54333)) * establish dbsale 12520
15-SEP-2009 13:52:49 * (CONNECT_DATA=(SERVICE_NAME=dbsale)(CID=(PROGRAM=oracle)(HOST=rock)(USER=test ))) * (ADDRESS=(PROTOCOL=tcp)(HOST=161.55.xxx.xx)(PORT=54334)) * establish * dbsale * 0
Edited by: user589812 on Sep 16, 2009 7:21 AMHi Jim,
I think the best way on this case is create one service with one instance as primary and another 3 as available.
Or use the connect string with two vip addresses, cause the service has two instances and the tnsnames.ora entry has only one.
Cheers,
Rodrigo Mufalani
http://mufalani.blogspot.com -
SIP load balancing issue with ACE 4710
SIP Load balancing Issue with ACE 4710
I have a Cisco ace 4710 with vesion Version A4(2.2). i configued simple SIP load balancing first without stickiness. without stikeiness we are having a problem because bye packet at the was not going to the same server all the time that left our port in used even though user hang up the phone. its happen randmly. i have a total 20 licenced ports and its fill out very quickly. so i dicided to use the stickiness with call-ID but still same issue. below is the config
rserver host CIN-VOX-31
ip address 172.20.130.31
inservice
rserver host CIN-VOX-32
ip address 172.20.130.32
inservice
serverfarm host CIN-VOX
probe SIP-5060
rserver CIN-VOX-31
inservice
rserver CIN-VOX-32
inservice
sticky sip-header Call-ID VOX_SIP_GROUP
timeout 1
timeout activeconns
replicate sticky
serverfarm CIN-VOX
class-map match-all CIN_VOX_L4_CLASS
2 match virtual-address 172.22.12.30 any
class-map match-all CIN_VOX_SIP_L4_CLASS
2 match virtual-address 172.22.12.30 udp eq sip
policy-map type loadbalance sip first-match CIN_VOX_LB_SIP_POLICY
class class-default
sticky-serverfarm VOX_SIP_GROUP
policy-map multi-match GLOBAL_DMZ_POLICY
class CIN_VOX_SIP_L4_CLASS
loadbalance vip inservice
loadbalance policy CIN_VOX_LB_SIP_POLICY
loadbalance vip icmp-reply
class CIN_VOX_L4_CLASS
loadbalance vip inservice
loadbalance policy CIN_VOX_LB_SIP_POLICY
loadbalance vip icmp-reply
interface vlan 20
description VIP_DMZ_VLAN
ip address 172.22.12.4 255.255.255.192
alias 172.22.12.3 255.255.255.192
peer ip address 172.22.12.5 255.255.255.192
access-group input PERMIT-ANY-LB
service-policy input GLOBAL_DMZ_POLICY
could you please help me on this...
thanks
Rakesh PatelI mean there should be one more statement-
class-map type sip loadbalance match-any CIN_VOX_LB_SIP_POLICY
match sip header Call_ID header-value sip:
and that will be called under-
policy-map multi-match GLOBAL_DMZ_POLICY
class CIN_VOX_SIP_L4_CLASS
loadbalance vip inservice
loadbalance policy CIN_VOX_LB_SIP_POLICY
loadbalance vip icmp-reply
is that missing in your config ? -
Load-balancing issues with iPlanet and multiple clusters
We're in performance test of a large-scale clustered deployment based on WLS 5.1sp10.
Due to scalability/functionality issues, some of which we've seen firsthand and
some of which we've been informed of by associates as well as BEA representatives,
we've chosen to implement multiple clusters with a maximum of three nodes each.
These clusters will be fronted by a web server tier consisting of iPlanet servers
using the proxy plugin.
Due to hardware constraints (both in test and in production), however, we've configured
the iPlanet servers to route across the multiple clusters. In our test environment,
for instance, we've got a single iPlanet server routing across two 3-node clusters,
and the configuration in obj.conf is as follows:
<Object name="application" ppath="*/application">
Service fn="wl-proxy" \
WebLogicCluster="clusterA_1:9990,clusterB_1:9991,clusterA_2:9990,clusterB_2:9991,clusterA_3:9990,
clusterB_3:9991" \
CookieName="ApplicationSession"
</Object>
Our issue is that the load-balancing doesn't appear to work across the clusters.
We're seeing one cluster get about 90% of the load, while the other receives
only 10%.
So, the question (finally!) is: Is this configuration correct (i.e., will it
work according to the logic of the proxy plugin), and is it appropriate for this
situation? Are there other alternative approaches that anyone can recommend?
Thanks in advance,
cramerI use weblogic6.1 with sp2+windows 2000.I develop a web application and deploy
it to cluster.Through HttpClusterServlets proxy of weblogic I found that a server
in cluster almost get 95% of requests but another only get 5% of requests.Why???
I don't set any special parameter.And the weight of the two clustered server is
equal.I use round-robin arithmetic.
Thanks!
"cramer" <[email protected]> wrote:
>
We're in performance test of a large-scale clustered deployment based
on WLS 5.1sp10.
Due to scalability/functionality issues, some of which we've seen firsthand
and
some of which we've been informed of by associates as well as BEA representatives,
we've chosen to implement multiple clusters with a maximum of three nodes
each.
These clusters will be fronted by a web server tier consisting of iPlanet
servers
using the proxy plugin.
Due to hardware constraints (both in test and in production), however,
we've configured
the iPlanet servers to route across the multiple clusters. In our test
environment,
for instance, we've got a single iPlanet server routing across two 3-node
clusters,
and the configuration in obj.conf is as follows:
<Object name="application" ppath="*/application">
Service fn="wl-proxy" \
WebLogicCluster="clusterA_1:9990,clusterB_1:9991,clusterA_2:9990,clusterB_2:9991,clusterA_3:9990,
clusterB_3:9991" \
CookieName="ApplicationSession"
</Object>
Our issue is that the load-balancing doesn't appear to work across the
clusters.
We're seeing one cluster get about 90% of the load, while the other
receives
only 10%.
So, the question (finally!) is: Is this configuration correct (i.e.,
will it
work according to the logic of the proxy plugin), and is it appropriate
for this
situation? Are there other alternative approaches that anyone can recommend?
Thanks in advance,
cramer -
Multiple dgraph clustering (load balancing) OOTB available?
Hello,
We have 2 dgraphs running in parallel having the same data to share the load of the clients.
I would like to know if there is any OOTB solution provided by Endeca where in these two dgraphs can share the load. OR I need to use an external load balancer for the same?
If there is any document that explains the configuration for OOTB Endeca solution, please let me know
Thanks!Hi,
yes I know...
i tried to check if they were still available...but found none,
that's why I said if you want me to send them email me ...(I downloaded them from Eden ) and the files aren't too big
regards
Saleh
29/11/12 : copy of the document called Simple MDEX Load Balancing with Apache HTTP Server (Endeca)
Endeca Solution Article Simple MDEX Load Balancing with Apache HTTP Server
Endeca Solution Article
Simple MDEX Load Balancing with Apache HTTP Server
By Robert Dennis
Last Updated: December 2010
Endeca Product Versions: 5.0+
This document describes how to set up a simple load balancing and failover solution using Apache HTTP server. This provides a cost effective mechanism leveraging widely available open source technologies to address simple infrastructure needs. This document includes the following sections:
Introduction
Configuration Steps
References
Endeca Solution Article Simple MDEX Load Balancing with Apache HTTP Server
Endeca Confidential 2 of 5
Introduction
Load balancers are the preferred solution for providing scalability, redundancy, and fail-over for MDEX Engine queries. Typically, load balancing and failover are accomplished with the use of dedicated load balancing hardware. For some Endeca implementations, however, a robust mechanism for load balancing may not be available or required by the customer. For more information on the basics of load balancing an Endeca application, see the “Endeca Load Balancing Best Practices” Solution Article available on EDeN.
This document describes the configuration steps involved in leveraging Apache’s default load balancing mechanisms to provide a simple load balancing solution for an Endeca application. In this scenario, Apache will sit between the Endeca presentation API housed in a web application and redundant MDEX engines. Apache performs the duties of a simple load balancer and failover broker, managing query requests from the application tier to specific MDEX engines.
Configuration Steps
The described configuration leverages Apache 2.2 HTTP Server as the load balancing mechanism between two identical MDEX engines all residing on a single server. The sample configuration expects the Apache HTTP server to be listening on port 5555 and the MDEX engines to be listening on ports 8000 and 8001. These can be changed as appropriate for a given environment.
1. In the Apache httpd.conf, enable the server for listening on port 5555.
Endeca Solution Article Simple MDEX Load Balancing with Apache HTTP Server
Endeca Confidential 3 of 5
2. Enable the following modules by un-commenting the appropriate loadmodule statements in the httpd.conf file. These modules include: mod_proxy, mod_proxy_balancer, mod_proxy_connect, mod_proxy_http, mod_negotiation.
3. Include the httpd-vhosts.conf file by un-commenting the appropriate line in the httpd.conf file.
4. Save the httpd.conf file and open the httpd-vhosts.conf file. Append the below information and save the file.
Endeca Solution Article Simple MDEX Load Balancing with Apache HTTP Server
Endeca Confidential 4 of 5
NameVirtualHost *:5555 <VirtualHost *:5555> ServerName localhost ProxyPass / balancer://dgraphs/ ProxyPassReverse / balancer://dgraphs/ <Proxy balancer://dgraphs> BalancerMember http://localhost:8000 loadfactor=1 retry=0 BalancerMember http://localhost:8001 loadfactor=1 retry=0 </Proxy> </VirtualHost> <Location /balancer-manager> SetHandler balancer-manager </Location>
The “retry” parameter associated with Balance Members disables the period of inactivity for a particular worker after Apache determines it is offline. The default is 60 seconds. It is recommended that this is set to a low number such as 0.
In environments where particular MDEX engines are targeted for additional load, the “loadfactor” parameter associated with Balance Members can be adjusted. Higher values ensure that the load balancing algorithm that is used will route the traffic load accordingly to specific Balance Members.
5. Restart Apache.
6. Within the UI application, configure the host and port of the HttpENEConnection to the host and port of the load balancer (e.g. localhost:5555).
Endeca Solution Article Simple MDEX Load Balancing with Apache HTTP Server
Endeca Confidential 5 of 5
Apache HTTP Server is now properly configured to serve as a load balancer for the MDEX Engines.
References
“Endeca Load Balancing Best Practices” Solution Article (EDeN)
Apache Module mod_proxy
Apache Module mod_proxy_balancer
Apache Module mod_proxy_connect
Apache Module mod_proxy_http
Apache Module mod_negotiation
Edited by: sabdelhalim on Nov 28, 2012 5:46 PM -
wondering if anyone would have advice for me on load
balancing with coldfusion either with software or hardware.
our basic set up is NAT through a firewall to local IPs. we
don't really have the option of assigning outward IPs to the
webservers.
it's not so much the load balancing that is important as much
as it is coldfusion availability as occasionally coldfusion stops
or crashes leaving a 503 msg for visitors (this is rare, but does
happen).
it would be nice to have a device or software switch the
incoming traffic to another server if CF is unavailable on the
other.
we are using MX 6.1 on win2003.
any help would be appreciated.These articles may help:
http://www.adobe.com/devnet/coldfusion/clustering.html -
Load balance DSP with DSPControl
We need balancing and failover in our calls to the DSP from WLI. The networking guys setup an F5 hardware load balancer to do this, but t3 connections are not working.
Questions:
1. Is there a known configuration of F5 that will work with t3 protocol?
2. Can the DSP control work over another protocol, such as http, without loss of functionality? If so, how do I set that up?
3. Is there a recommended approach to what we are trying to do?
Thanks!
JeffJeff - you have a case open and both you and the customer support guy are chasing this down as and ALDSP and WLI issue. It's not. The problem you have occurs in creating an InitialContext when giving the URL of the load-balancer. Look in the stack trace - there is no ALDSP - just your code and WLS. You will get better results if you investigate it as such. For instance - if you post your question on WLS/EJB/RMI forum - the right people will see it. ( deleted remark about creating a CR)
Also - from the case description - it's not clear why you have the load-balancer there. It sounds like the ejb is hosted on the same machine as the client (it mentions that it works fine if you use localhost instead of the load-balancer ... maybe that was just something you tried). Also the WLS EJB stubs do load-balancing (and fail-over, too) so again I'm not sure of the purpose of the hardware load-balancer (if you give a good reason and it all makes sense, it's easier to diagnose).
Also posted on the case is a forums.bea.com posting that says you need to set the ejb server's "external server address" - the ejb stubs report the address that the clients should use for calling them - normally it is their own address - but if you have a load-balancer in between - they should be using the address of the load-balancer.
Also posted on the case is a reference to a CR about problems using a load-balancer when the servers have different port numbers. I didn't read the details on that.
Please escalate your case with customer support.
- MIke
Edited by: mikereiche on Nov 14, 2008 10:02 AM -
11i load balancing web nodes without use of Hardware http load balancer
I am looking at note 217368.1 (Advanced Configurations and Topologies for Enterprise Deployments of E-Business Suite 11i) and some other notes on load balancing but some aspects are not clear.
Aim is to implement load balancing traffic to web nodes without using Hardware ( BigIP, cisco etc) for HTTP layer load balancing.
Which is more preferable between dns or Apache Jserv load balancer ?
Need details like failover capabilities, death detection of node, functionality testing and ways to monitor Apache Jserv load balancer.
Any help in this regard is welcome .
thx
arunOracle recommends using loadbalancing hardware rather than using DNS. If you want the features you mention above, you will need a hardware loadbalancer.
http://blogs.oracle.com/stevenChan/2006/06/indepth_loadbalancing_ebusines.html
http://blogs.oracle.com/stevenChan/2009/01/using_cisco_ace_series_hardware_load-balancers_ebs12.html
HTH
Srini -
Query on Clustering,Load Balancing and Dehydration in Oracle BPEL PM
Hi,
I had a Few queries on Dehydration ,Clustering and Load Balancing:
1) In section 5.1 "Use Case for Asynchronous Web Services",insertion of a dehydration point is mentioned.What do you exactly mean by this.Can a dehydration point be inserted explicitly?OR we have to put a wait activity or something so that dehydration happens?
2) If a dehydration point needs to be inserted explicity arent we assuming that the invoke-reply will take long?But this might not be the case always.Is is a lso possible that an asynchronous process is not a long running one.
3) Can we configure administratively ,how much time the process (say 10 seconds or so)waits after which it gets dehydrated?
4) Consider a load balancing scenario,where we have 2 BPEL PM's (PM1 and PM2) running on 2 different App Servers (SRV1 and SRV2)in an clustered environment.
Scenario:
1)We have an asynchronous process which makes a call to a human task activity.
2)A request from client comes for this process.
3) The load balancing server forwards it to PM1 on SRV1.PM1 processes the request and calls the human task.
4) PM1 has not dehydrated the process.
5) The response from the Human User comes back to the Load Balancer before the process is dehydrated by PM1.It forwards this response to PM2.PM2 searches for the Process based on the Cor-relation ID and does not find it.
Can you tell me how this scenario is handled?
I would be grateful if someone can answer these queries or direct me to some place where it is already explained.
Thanks
Dileep1) In section 5.1 "Use Case for Asynchronous Web Services",insertion of a dehydration point is mentioned.What do you exactly mean by this.Can a dehydration point be inserted explicitly?OR we have to put a wait activity or something so that dehydration happens?
Insert a java snippet with "checkpoint();"
3) Can we configure administratively ,how much time the process (say 10 seconds or so)waits after which it gets dehydrated?
No, this is due to the performance of your database. -
Load Balancing Problem with WLS6.1
Hi,
I have 4 Instances of Weblogic servers two instance per box with Clustered. The
admin server is running in the first box. While stress testing it seems all the
loads are going to one instance and other instances are almost idle.
In the Secondary Group, i have given the name of the other instance on the same
server. I'm running weblogic in Solaris with SP3.
Can anyone suggest why loadbalancing doesn't work.
Typically, load balancing will work unless there is a problem with the
clusters seeing each other. Therefore first make sure that the managed
server has joined the cluster.
Other things to look at are the __WebLogicBridgeConfig (see WLS plugin
documents) to confirm that there is a primary and secondary.
The above assumes Servlet load balancing, for objects check the
deployment descriptors.
Diwan Mohideen wrote:
>
> Hi,
>
> I have 4 Instances of Weblogic servers two instance per box with Clustered. The
> admin server is running in the first box. While stress testing it seems all the
> loads are going to one instance and other instances are almost idle.
>
> In the Secondary Group, i have given the name of the other instance on the same
> server. I'm running weblogic in Solaris with SP3.
>
> Can anyone suggest why loadbalancing doesn't work.
-
2 x 2911 HSEC router 3 ADSL connections each Site ti Site VPN Load Balancing Failover
Hello,
My senario is as described in Title.
Site A Headquarters. The router is Cisco 2911HSEC with 3 ADSL connections
Site B Remote Office. The router is Cisco 2911HSEC with 3 ADSL connections and 10 Users.
All ADSL connections have static IPs and belong to same ISP.
Need - Site to Site VPN between the routers.
Client requests to load balance the traffic, due to poor ADSL speed and have a failover senarion in case an ADSL line goes down.
Any help will be appreciated.I don't believe you will find a One solution for this.
An idea would be to have all three ADSLs paired with ADSL on the other side.
Have 3 VTI (or GRE) tunnels up all the time (VRF-lite anybody?) and advertise routes to the other side with same metric.
This will cause IOS to load balance natively.
Potential problem: return path might not be the same as forward path, but it should not matter much for most applications.
Potential cool thing you can do: All the "magical" things in routing world (Did I head PfR?). FlexVPN on top to make it more flexible.
Benefit: Rely on IKE to bring down connections which are going down. Little-to-no management once it's up and running. -
Loading balance/failover in JDBC
Hi experts,
we have a 4 nodes oracle 10g2 RAC in linux
we created a service as TNS have info for failover and loading balance
as
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dbservice)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
it works for no java application
I saw JDBC as
URL="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost2)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=off))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=dbservice)))"
my question as why are difference setting in TNS and JDBC for load_balance and failover?
do we nned to copy exactly TNS into JDBC?
Do we need to set MultiPools for JDBC? this java application use connection pool to connect toRAC database. and seems that failover does not work.
Thanks for help
JImOk, TAF does not work with jdbc-thin: [http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/overvw.htm#sthref18]
With TAF the client takes care of failover transparent to the application.
But TAF is not the only feature/function that will help with failover. If you have an application server that employs a connection pool, it will also take care of this. When the connection pool determines that a connection is lost/broken (or it receives a FAN event) it will try to reopen a connection and it will be redirected to a working instance. This should keep the application up but all transactions and sessions that were being executed on the failed node will still crash and generate application errors (a smart application could catch such an exception and re-execute all sql).
Maybe you can explain more what kind of behavior you expect during failover and why you think it is not working.
Bjoern
Maybe you are looking for
-
How to get the display value of selected item in list box?
I have a page with an HtmlSelectOneListbox that is filled with an ArrayList of SelectItem objects. The SelectItem objects contain a Key and Value. The Value is displayed in the ListBox. The value parameter of the listbox is bound to a bean property w
-
ALE/IDOC and RFC/BAPI Integration Scenarios with SAP DS for ESA v3
Hi, we are planning two PoCs of Integration Plattforms. One of our major requirement set is SAP Integration into our existing SOA. Because we also have R/3 4.7 Systems in production, we are planning to test ALE/IDOC and RFC/BAPI Integration scenarios
-
Exchange Rate for GR same entered in PO
Hi All! We cover our exposure for foreign POs at the time of placing a PO and the same exchange rate is entered in PO. we want the GR to be posted with the same rate. But system valuates the GR with rate applicable for the GR date from global table.
-
I've recently bought Kontakt 2 & Kontakt Experience to use with LE7, but cpu drain is crippling my PB. Am thinking of buying desktop, not sure whether to go for new iMac G5 2ghz or sell a limb & buy Powermac G5 dual 2.3ghz. Is anyone out there runnin
-
0kb available on Startup drive
For some reason my main HD is going down to 0KB available. In the last 15 minutes I've been watching it go from 13GB down to under 2GB, and I know it will go to 0KB. It was at Okb earlier today and suddenly popped up to 13GB before it started going d