on 03-17-2008 5:20 PM
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?
First isolate the instance and access it directly
If you have multiple server nodes (server0, server1, etc.) on that instance, stop them first.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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....
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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).
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.