cancel
Showing results for 
Search instead for 
Did you mean: 

controlling which JVM is used in a load balanced environment?

Former Member
0 Kudos

we are trying to track down some intermittent problems in our load balanced Netweaver 2004s environment. One of the things we want to do is to be able to run a servlet on a particular engine in that environment (or run it 8 times, once on each engine).

How can we ensure which engine a particular request gets executed on?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

First isolate the instance and access it directly

http://<host>:<port>/.

If you have multiple server nodes (server0, server1, etc.) on that instance, stop them first.

Former Member
0 Kudos

ok... what if this is production, I have multiple instances per machine, and I can't stop instances?

Former Member
0 Kudos

Well, there's no way that I know of to isolate a request to a cluster be directed to a specific server node (server0, server1, etc.)

If you have multiple "instances" running on one host, then to me that means you have the instances segreated by instance numbers (00, 01, etc.), which means there are dedicated http port numbers (50000, 50100).

In that case, you can direct to a specific instance on a host by the HTTP port number (e.g. http://<host>:50000/....)

That would bypass any loadbalancer you have in front of all your web server instances.

Former Member
0 Kudos

my apologies, I don't have the right terminology. I need to access a specific server node.

Former Member
0 Kudos

It is possible to steer requests to a specific server node. Make sure the request goes to the correct host, and set the saplb_* cookie on the request. I found the cookie values by just banging against the machine a few times and seeing what it sent back; the value looks like:

(J2EE1828000)1828052

or

(J2EE1828000)1828050

The numbers look familiar, I can probably find them in my Netweaver configuration somewhere....

Former Member
0 Kudos

Hi!

Interesting to know...

for these numbers: They are the NodeIDs of your java nodes it seems...

the one with '00' at the end is the dispatcher, '50' would be server0, '51' server1 and so on...

You can find them in visual Admin or configtool or when you look at your logfiles.

Good luck in troubleshooting...

Jörg

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi!

As mentioned before, to directy access a 'instance' instance (meaning dialog instance) is easy by specifying the combination. To access an individual servernode (which you seemingly want to) is definitely not so easy. Could you elaborate on WHY you need to know on which servernode the servlet gets executed? One way to try and move in that direction is to 'undeploy' the servlet via the deploy service in visual Admin from all servernodes but the one you're interested in. I am not sure if that works though.

Regards,

Jörg

Former Member
0 Kudos

Here's why I need to do this:

I have one (or perhaps a couple) of server nodes that are having their default language changed. They seem to start with en_US, but somewhere along the lines, it's getting changed to pt_BR.

We are working on finding what application we have deployed that has caused the problem, but that is looking to be a time-consuming operation.

In the interim, it would be good to be able to periodically run a script that checks the current default language on each of the server nodes (and perhaps set it back).