Posted by Vasu Balla on Apr 21, 2008
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. Read the rest of this entry . . .
Posted by Sheeri Cabral on Mar 27, 2008
mysql-proxy defaults to round-robin load balancing. There are fancy tricks around to get mysql-proxy to balance connections based on how many idle connections there are in a proxy-based connection pool.
But there is no code that I found that would simply load balance based on “always go to one server, go to another server only when the first server is down.”
Well, I spent way too long figuring this out today, again running into the problem where the manual hasn’t been updated. I have indeed made a Forge snippet of this code, but it does not hurt to post it here.
This was in fact taken from http://jan.kneschke.de/projects/mysql/mysql-proxy-learns-r-w-splitting, which I referenced above as having the fancy trick above — but there is one very important difference — the internal structure proxy.servers has been changed to proxy.backends. Sadly, the manual page for the Internal Structures has not been updated to reflect this.
At least now there’s a comment on the documentation page that states that.
function connect_server()
for i = 1, #proxy.backends do
local s = proxy.backends[i]
if s.state ~= proxy.BACKEND_STATE_DOWN then
proxy.connection.backend_ndx = i
-- print ("connecting to " .. i)
return
end
end
end
function read_query(packet)
for i = 1, #proxy.backends do
local s = proxy.backends[i]
if s.state ~= proxy.BACKEND_STATE_DOWN then
proxy.connection.backend_ndx = i
-- print ("connecting to " .. i)
return
end
end
end
Posted by Alex Gorbachev on Mar 4, 2008
First of all “the before” time is over — I’m done with my presentation. It’s been the first slot of the day — 8:30 and Cary Milsap was presenting in another hall so what chances do I have to get people in? It turned out that some people actually did show up and quite a few considering the circumstances.
I have mixed feeling on the results. The presentation started very well and I managed to wake people up at the very beginning — thanks to the “equipment” I had at hands (thanks Marco and Riyaj!). You can spot one of them on the photo (thanks for the photo Marco):

Read the rest of this entry . . .