cancel
Showing results for 
Search instead for 
Did you mean: 

All web sessions (Java) getting started on the cluster server

ross_anderson2
Explorer
0 Kudos

We have a clustered environment and are using Web Analyzer to access our BI system. I just recently discovered, however, that all of the web sessions are running on the clustered server, which should not be happening.

We use a virtual name when accessing the Web Analyzer URL (because of the clustered environment) but the same thing happens when I use the actual physical name of the primary server (taking out DNS as a possible cause of the problem).

So, my question is, what dictates where the web session gets launched? When looking in AL08 I see all of the web sessions running on our clustered server and their terminal name is the name of the primary server. Conversely, all SAP GUI sessions are running on the primary server, so I know this is just an issue with web/http related sessions.

I thought there might be a java attribute that dictated which server where these sessions got started (such as in the dispatcher config) but I can't find anything, plus I know it's not a load-balancing issue because the web sessions never start on the primary server.

Thanks for any insight

Ross

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello Ross,

The SAP Cluster is made by instances. One central instance and one or more dialog instances.

Each instance has one java dispatcher node and one or more server nodes.

On each instance the java dispatcher node is load balancing the requests between the server nodes.

If you have only one instance with multiple server nodes, then all requests will go there and will be automatically distributed between the server nodes. This is not clustered environment, because all server nodes are on the same machine and are identical processes.

If you have more than one instance, then you could access them directly by requesting them on the HTTP port of each instance.

Furthermore if you donu2019t have load balancer, you could use the HTTP port of the message server as simple load balancer.

By identifying which HTTP port is requested by your clients we could figure out how the requests are dispatched.

You are right the Web Dispatcher has to be installed separately.

Regards,

Ventsi Tsachev

Technology Development Support (J2EE Engine)

SAP Labs, Palo Alto, Ca (USA)

ross_anderson2
Explorer
0 Kudos

We have two separate instances each running on their own physical server. Thus, it is possible to go to the java port of each individual server; ie. http://server1:port or http://server2:port. The cluster is setup such that either server could go down and the remaining server will keep working.

When I use the virtual server name (which resolves to server1) in the URL, the http session actually always gets sent to server2 with server1 as the terminal name (when looking in sm04 or al08).

1) Clients goes to http://<virtual server name>:port

2) Virtual server name is resolved to server1

3) Server1 receives http request and sends to server2

4) Http session is started on server2 with terminal name of server1

The same thing happens if I use server1 or server2 in the URL as well -- the session always gets sent to server2. I know I do not have a good enough knowledge of how the j2ee dispatcher works - I'm assuming this is the problem.

Thanks again

Former Member
0 Kudos

Hello Ross,

The http requests are dispatched by the load balancer in your cluster.

If you want all requests to arrive at particular instance you have to configure your load balancer to forward them there.

If you are using SAP Web Dispatcher, you could use the Administrator tool to monitor and configure the server groups:

http://webdisp_host:admin_port/sap/admin

More information at:

http://help.sap.com/saphelp_nw04/helpdata/en/5f/7a343cd46acc68e10000000a114084/frameset.htm

http://help.sap.com/saphelp_nw04/helpdata/en/05/ac923fa5e93c17e10000000a114084/frameset.htm

Regards,

Ventsi Tsachev

Technology Development Support (J2EE Engine)

SAP Labs, Palo Alto, Ca (USA)

ross_anderson2
Explorer
0 Kudos

Thanks for your response Ventsi. I have read most of the documentation re: the Web Dispatcher but unfortunately we are not using that. It is a plain, vanilla version of clustering .. thus, I'm not completely sure what is actually doing the "load balancing" here. I put load balancing in quotes because its not actually balancing the http sessions ... ALL http sessions are going to the cluster server and I can not find anywhere in our configuration where the cluster server is explicitly referenced.

Even when I explicitly specify the primary server in the URL, the session still gets passed over to the cluster (secondary) server. I thought maybe the dispatcher would handle where the http sessions go.

Is there any other documentation for dipatching http sessions other than with the web dispatcher? Its my impression that the web dispatcher is an additional piece of software that has to be setup separately. This URL does not work : http://<servername>:<port>/sap/admin.

Thanks!!