Windows Network Load Balancing (NLB)

fbrammer

fbrammer

Active Member
I’m looking for some ideas on a poor man's cluster. Technically, we don't need to cluster. I'll try to explain.

We currently have 2 Web Sphere nodes serving JDE. We've setup CNAME aliases up in our DNS to point to whichever server we want the users to connect to. When we switch the DNS alias(es) the active connections continue just fine until they logout normally, and the new aliases make their way out to the network over a few minutes (5 minute TTLs on a LAN). As the clients receive the new alias new connections go through the new path. This works great unless we have an unexpected server failure. It takes about the same amount of time to reboot a server as it does to go through the DNS switching process.

Server failures aren’t common, but we’re adding more and more folks to JDE. (This is a new system and we’re moving off an existing system.) In about six months 5-10 minutes of system down time during the day will be a major issue. Management says they’re not willing to pay for 99.9999% uptime. They are willing to accept infrequent lost connections (yea right), as long as they can get right back in. They don’t want their company shutdown for 10 minutes waiting on the server to reboot.

I’m not a network guy and apparently neither are our network guys. : ) It didn’t take me 30 minutes to find and learn about Microsoft’s Windows Server Network Load Balancing technology. It does exactly what we need! Just one problem, the drain stop option is very weak. It suppose to stop new connections to the node that is set to drain stop while allowing existing connections to continue until they disconnect. And I guess technically that is what it does, but somehow it breaks the connection between the JDE Web Interface session and the Enterprise Server Session (kernel process) it was connected to. Effectively, and not very nicely, killing the active JDE user sessions and leaving orphaned Application Server sessions.

Is there a way to configure Windows NLB to work nicely with JDE (Web Sphere)? If not, is there another option similar in price (free in Server 2008) and easy to install, configure and manage?

Thank you.
 
A quick update from my own research. NLB will not work because it does not play nice with Websphere. Websphere has it's own load balancing / dispatching utility. I've seen references to Web Load Balancing (WLB), Edge Server and Dispatcher, but no solid information or instructions on how to get it, install, configure, manage or really anything useful. I'll update this if I figure it out.
 
Re: Windows Network Load Balancing (NLB) With WebLogic

I'm attempting to reopen this thread with the hopes that may be someone has had some success in using Windows NLB to load balance two Web logic servers. I understand that NLB has very limited features but it is free with Win 2008 so would like to see what is possible with it..

Thanks in Advance
 
Re: Windows Network Load Balancing (NLB) With WebLogic

I have a presentation scheduled at Collaborate on using a free Network Load Balancer with EnterpriseOne. I strongly recommend you attend the presentation if you're going to Collaborate !
 
Re: Windows Network Load Balancing (NLB) With WebLogic

I implemented NLB succesfully with WLS and OAS over Windows 2003 and Windows 2008. We have 5 or 6 customers live with this technology.
gg
 
Re: Windows Network Load Balancing (NLB) With WebLogic

We have used NLB with OAS for over 2 years, and are just setting it up with WLS now that we are upgrading to TR 9.1.
 
Re: Windows Network Load Balancing (NLB) With WebLogic

Thanks All for your responses.

Jon, I have been following your previous posts about the presentation you are giving at Collboarate , unfortunately this needs to be implemented and live before the 15th of next month. If you are at a liberty to disclose , is your solution around NLB or some other technology ? If I am at Collaborate I will definitely try to attend your session

Luigi / Don,

Did you have more than one port on each server ? Did you have to have a listen directive on the default port 80 that re-directed to the JDE URL..?

I have two JVMs one on each server running on port 9092 .

The network folks have created a NLB cluster that contains these two servers and created a Virtual IP / DNS name for the cluster. Do we to edit the port rules configuration ?

Any inputs are appreciated..

Thanks Again
 
Re: Windows Network Load Balancing (NLB) With WebLogic

In our OAS setup, we had just 1 port on each server, using NLB as a common front end. We were able to do this because OAS allowed you to create multiple JVM's within the same server on the same port.

WebLogic is a different animal. Each JVM must be created on a separate port, so we're using Oracle Web Cache to pool all the HTML server instances, and then we have one listening port that those are all directed to. We will then use NLB to pool the listening port on each server to a virtual server name (which will be defined in DNS).
 
Re: Windows Network Load Balancing (NLB) With WebLogic

Thanks Don,

Yes with WLS , each JVM will be on its own port. From a performance perspective for this site we technically need only one JVM on each server (30 concurrent users across both servers at the very maximum). So even if one server were to go down , one JVM could easily handle 30 users at peak.

I believe Oracle Web Cache is only available if we are licensed for the Enterprise Edition which is not what is delivered with the Standard Red Stack which is why we cannot go that route for the vertical clustering

Are you using simplified URLs for your main listening port or is it the standard

http://<servername.domain.com>:<port>/jde/owthml

Will NLB work with the above URL ? So if my clustername is "jdewebpd" and my individual servers are jdewebpd1 and jdewebpd2

Will NLB route requests sent to

http://jdewebpd.domain.com:<port>/jde/owhtml

to

http://jdewebpd1.domain.com:<port>/jde/owhtml

and

http://jdewebpd2.domain.com:<port>/jde/owhtml


Or does it need simplified URLs and default port 80 to work..?
 
Re: Windows Network Load Balancing (NLB) With WebLogic

An example with WLS, I had 2 servers. I created one instance (JVM) on port 8001 on server 1. I clusterized this JVM on the same server (vertical cluster) creating other two instances listening on port 8002 and 8003. Then I clusterized JVMs over server 2 (horizontal cluster) on the same port (8001, 8002, 8003).

Then I configured Oracle http server on both servers to listen requests as "JDEWEBPROD" (this is name of my NLB cluster as known on my network through DNS) on port 80. All requests will come on
http://JDEWEBPROD are redircted to all JVM configured on both servers using Apache http directive

SetHandler weblogic-handler
WebLogicCluster server1:8001 .... server2:8003

I suggest you to configure NLB cluster to use "unicast"
 
Re: Windows Network Load Balancing (NLB) With WebLogic

[ QUOTE ]

Then I configured Oracle http server on both servers to listen requests as "JDEWEBPROD" (this is name of my NLB cluster as known on my network through DNS) on port 80. All requests will come on
http://JDEWEBPROD are redircted to all JVM configured on both servers using Apache http directive

SetHandler weblogic-handler
WebLogicCluster server1:8001 .... server2:8003

I suggest you to configure NLB cluster to use "unicast"

[/ QUOTE ]

Thanks gg
Would you be able to share your "httpd.conf" file / sections or what ever it is called in OHS that defined the above configuration

Can all this be done through the weblogic admin console too..?
 
Re: Windows Network Load Balancing (NLB) With WebLogic

Please refer to document 1173455.1, which states that Oracle Web Cache is included in the Oracle Technology Foundation.

With OAS, we are using URL's like http://jdewebpd:89/jde/owhtml

Our plan for WLS is to use a URL like http://jdewebpd/jde/owhtml, with the port # defaulting to 80. NLB splits jdewebpd to either jdewebpd1 or jdewebpd2, and then each of these will be balanced to one of two JVM's on each machine, using Web Cache.
 
Re: Windows Network Load Balancing (NLB) With WebLogic

[ QUOTE ]
....unfortunately this needs to be implemented and live before the 15th of next month....

[/ QUOTE ]

So they can't wait a week or so after then ? Believe me, after my presentation, you'll be able to put something together within 1 day.

[ QUOTE ]
If you are at a liberty to disclose , is your solution around NLB or some other technology ? If I am at Collaborate I will definitely try to attend your session


[/ QUOTE ]
some other technology thats FAR better, FAR easier, and FAR more sale-able to management
 
Re: Windows Network Load Balancing (NLB) With WebLogic

Thanks Don , will look into Web Cache

So NLB can handle a URL with a port number and directives after the port. That is good to know
 
Re: Windows Network Load Balancing (NLB) With WebLogic

[ QUOTE ]
[ QUOTE ]

Then I configured Oracle http server on both servers to listen requests as "JDEWEBPROD" (this is name of my NLB cluster as known on my network through DNS) on port 80. All requests will come on
http://JDEWEBPROD are redircted to all JVM configured on both servers using Apache http directive

SetHandler weblogic-handler
WebLogicCluster server1:8001 .... server2:8003

I suggest you to configure NLB cluster to use "unicast"

[/ QUOTE ]

Thanks gg
Would you be able to share your "httpd.conf" file / sections or what ever it is called in OHS that defined the above configuration
Can all this be done through the weblogic admin console too..?

[/ QUOTE ]
No you have to change config file manually. Setup for http is made up by:
1) change httpd.conf (on each server) adding

Listen JDEWEBPROD:80 (where JDEWEBPROD is the name of your NLB cluster)

2) change or add mod_wl_ohs.conf file

<Location /jde>
SetHandler weblogic-handler
WebLogicCluster server1:8001,server1:8002,bersysas02:8001,bersysas02:8002
DynamicServerList OFF
</Location>
 
Re: Windows Network Load Balancing (NLB) With WebLogic

Thanks gg,

So you installed an additional Oracle HTTP Server on your Weblogic machine. You did not configure the internal HTTP server used by Weblogic it self to do the re-direction correct ?
 
Re: Windows Network Load Balancing (NLB) With WebLogic

[ QUOTE ]

So they can't wait a week or so after then ? Believe me, after my presentation, you'll be able to put something together within 1 day.So they can't wait a week or so after then ? Believe me, after my presentation, you'll be able to put something together within 1 day.



[/ QUOTE ]

Jon,

I meant to say they are going live with 9.0 on the 15th , so the solution needs to be in place within the next 2 weeks ideally. But I will keep a look out for your solution and re-implement if needed.
 
Re: Windows Network Load Balancing (NLB) With WebLogic

[ QUOTE ]
Thanks gg,

So you installed an additional Oracle HTTP Server on your Weblogic machine. You did not configure the internal HTTP server used by Weblogic it self to do the re-direction correct ?

[/ QUOTE ]

Yes I installed "Oracle HTTP server" included in "Oracle 11G WebTier"
You can find here a good guide to configure it
http://docs.oracle.com/cd/E12839_01/core.1111/e12035/webtier_im.htm
 
Re: Windows Network Load Balancing (NLB) With WebLogic

The internal web server that comes with weblogic is NOT recommended for production. It is strongly recommended to use Oracle HTTP Server (from Web Tier Utilities).
 
Back
Top