cancel
Showing results for 
Search instead for 
Did you mean: 

Loadbalancing with Sap Webdispatcher for CRM / HTTP

kai_gebhardt
Participant
0 Kudos

Hello,

we want to use the Web Dispatcher for Loadbalancing with our CRM production system (for HTTP Requests): CI+DB on one server and another DI on a second server.

I've configured the Web Dispatcher Profile:

[...]

SAPSYSTEMNAME = SID

SAPSYSTEM = 00

rdisp/mshost = servernameCIDB.fqdn

ms/http_port = 8100

wdisp/load_balancing_strategy = simple_weighted_round_robin

wdisp/server_0 = NAME=servernameCIDB_SID_00, LB=18

wdisp/server_1 = NAME=servernameDI_SID_00, LB=10

icm/server_port_0 = PROT=HTTP,PORT=8000

wdisp/ssl_encrypt = 0

wdisp/add_client_protocol_header = true

icm/HTTPS/verify_client = 0

ssl/ssl_lib=/usr/sap/SER/crypto/libsapcrypto.so

ssl/server_pse=/usr/sap/SER/crypto/sec/SAPSSLS2011.pse

icm/HTTP/redirect_0 = PREFIX=/, TO=/sap/crm_logon?sap-client=010

wdisp/allow_multiple_matching_systems = true

icm/HTTP/server_cache_0 = PREFIX=/,CACHEDIR=/usr/sap/SER/sapwebdisp/data/cache

[...]

In the article http://wiki.sdn.sap.com/wiki/display/CRM/CRM+UI+Load+Balancing+With+Webdispatcher it is mentioned to use a server info-File. Thus I can't find an example, I've just created a file with the output from

http://<servername>:8101/msgserver/text/logon?version=1.2

==========================================================================

version 1.2

servernameDI_SID_00

DIAG    servernameDI    3200    LB=18

RFC    servernameDI    3300   

servernameCIDB_SID_00

DIAG    servernameCIDB    3200    LB=10

RFC    servernameCIDB    3300   

HTTP    servernameCIDB    8000   

HTTPS    servernameCIDB    8443   

SMTP    servernameCIDB    25   

J2EE    servernameCIDB    8000    LB=1

J2EES    servernameCIDB    8443    LB=1

==========================================================================

And then I added the parameter

wdisp/server_info_location = /usr/sap/SER/sapwebdisp/serverinfo.icr

to the Web Disp profile. I've restarted the Web Dispatcher and checked the config:

./sapwebdisp -checkconfig pf=sapwebdisp.pfl

Checking SAP Web Dispatcher Configuration

=========================================

WARNING: maximum number of sockets supported on this host (1021) less than configured: 8192

Server info will be retrieved from host: servernameCIDB:8100 with protocol: http

Checking connection to message server...OK

Retrieving server info from message server...Checking ABAP servers with URL "/sap/public/icman/ping":

no server group "!DIAG" defined

no server group "!J2EE" defined

Check ended with 0 errors, 1 warnings

==========================================================================

When I disable the parameter wdisp/server_info_location, it looks a bit better, but the Web Dispatcher  doesn't find the applicatin server:

==========================================================================

WARNING: maximum number of sockets supported on this host (1021) less than configured: 8192

Server info will be retrieved from host: servernameCIDB.fqdn:8100 with protocol: http

Checking connection to message server...OK

Retrieving server info from message server...OK

Message Server instance list:

+---------------------+---------------------+---------+----------+

|    instance name    |    hostname         |HTTP port|HTTPS port|

+---------------------+---------------------+---------+----------+

|   servernameCIDB_SID_00 |servernameCIDB.fqdn. |    8000 |    8443  |

+---------------------+---------------------+---------+----------+

Checking ABAP servers with URL "/sap/public/icman/ping":

Checking ABAP server servernameCIDB.fqdn:8000...OK

Checking J2EE servers with URL "/index.html":

Checking J2EE server servernameCIDB.fqdn:8000...OK

Retrieving group info from server servernameCIDB.fqdn:8000...OK

Defined server groups:

+---------------------+----------+

|     group name      | #entries |

+---------------------+----------+

|               !J2EE |       1  |

|              !J2EES |       1  |

|               !DIAG |       1  |

|              !DIAGS |       1  |

|                !ALL |       1  |

|              public |       1  |

+---------------------+----------+

Retrieving url info from server servernameCIDB.fqdn:8000...OK

Url map info file "/sap/public/icf_info/icr_urlprefix" is OK

Contents of url map file:

+---------------------+---------------------+--------------------+

|        URL          |        Group        |   virtual host     |

+---------------------+---------------------+--------------------+

|          /sap_java/ |                     |                *:*;|

|            /test30/ |                     |                *:*;|

|              /nwbc/ |                     |                *:*;|

|               /sap/ |                     |                *:*;|

|               /srm/ |                     |                *:*;|

+---------------------+---------------------+--------------------+

Check ended with 0 errors, 1 warnings

==========================================================================

When I test the Service /default_host/sap/public/icf_info/icr_groups in scif, the output seems to be right:

===================================================

version 1.0

servernameCIDB_SID_00

servernameDI_SID_00

public:servernameCIDB_SID_00,servernameDI_SID_00

===================================================

The output of the service /default_host/sap/public/icf_info/logon_groups gives me an empty page. Is this the problem?

What am I missing?

Best regards

Kai

Accepted Solutions (1)

Accepted Solutions (1)

Sriram2009
Active Contributor
0 Kudos

Hi Kai

Could you pls share the Webdispatcher version information ? and also kindly go thru the sap note which is old one. based on this you can refer current issue Note 751873 - Problem analysis during the HTTP load distribution

Thanks & Regards

Sriram

Answers (2)

Answers (2)

kai_gebhardt
Participant
0 Kudos

Hello Sriram, hello Tobias,

thank you both for the answers.

Tobias: The Port 8100 is allright, I copied the URL

http://<servername>:8101/msgserver/text/logon?version=1.2

just from elsewhere and did not change the portnumber.

Nevertheless I found the possible problem: My colleague has added the parameter "icm/full_host_name" in the default profile, only with the name of the CIDB. After moving this parameter to both instance profiles, each with it's own name, it looks better:

Message Server instance list

+---------------------+---------------------+---------+----------+

|    instance name    |    hostname         |HTTP port|HTTPS port|

+---------------------+---------------------+---------+----------+

|   servernameDI_SID_00 |servernameDI.fqdn. |    8000 |    8443  |

|   servernameCIDB_SID_00 |servernameCIDB.fqdn. |    8000 |    8443  |

+---------------------+---------------------+---------+----------+

Checking ABAP servers with URL "/sap/public/icman/ping":

Checking ABAP server http://servernameDI.fqdn.:8000...OK

Checking ABAP server http://servernameCIDB.fqdn:8000...OK

Checking J2EE servers with URL "/index.html":

Checking J2EE server http://servernameDI.fqdn.:8000...OK

Checking J2EE server http://servernameCIDB.fqdn:8000...OK

Retrieving group info with HTTP from server servernameDI.fqdn.:8000...OK

Defined server groups:

+---------------------+----------+

|     group name      | #entries |

+---------------------+----------+

|               !J2EE |       2  |

|              !J2EES |       2  |

|               !DIAG |       2  |

|              !DIAGS |       2  |

|                !ALL |       2  |

|              public |       2  |

+---------------------+----------+

Retrieving url info with HTTP from server servernameDI.fqdn.:8000...OK

Url map info file "/sap/public/icf_info/icr_urlprefix" is OK

Contents of url map file:

+---------------------+---------------------+--------------------+

|        URL          |        Group        |   virtual host     |

+---------------------+---------------------+--------------------+

|          /sap_java/ |                     |                *:*;|

|            /test30/ |                     |                *:*;|

|              /nwbc/ |                     |                *:*;|

|               /srm/ |                     |                *:*;|

|               /sap/ |                     |                *:*;|

+---------------------+---------------------+--------------------+

And when I'm using the URL of the webdispatcher in the browser, I can see in AL08 that my request was routed to the application server.

So everything is OK now.

Thanks again and best regards

Kai

0 Kudos

Hello Kai,

You use port 8100 for ms/http_port, but query port 8101 for the static server info file. This suggests that you should use port 8101 for ms/http_port.

I do not fully agree with the artice you mentioned. There is no need to use a static server info file just to be able to use the simple_weighted_round_robin strategy. If you want to override the server capacities reported by Message Server, you can always to this with the wdisp/server parameters (as you did.) Otherwise, using a static file has several disadvantages (manually updates required for changes in the back-end system e.g. adding/removing servers, changing ports, etc.)

Regards,

Tobias