Applies to:
SAP Netweaver Systems accessed via internet or intranet.
Summary
As of SAP Webdispatcher version 7.2 it is possible to connect to multiple SAP and non-SAP systems, using only one Webdispatcher. Using this functionality can decrease the number of Webdispatchers that has to be managed, as well the number of ports in the landscape that should be opened.
For each system you want to connect to the webdispatcher, an host name alias has to be created which is pointing to the webdispatcher host.
For example:
Your webdispatcher is running on host webdisp.domain.com, ERP system is running on erpsys.domain.com, SAP Portal is running on portal.domain.com
For the erpsys.domain.com and portal.domain.com, you have to create an alias (via hosts file or DNS), which is pointing to webdisp.domain.com
Installation
The webdispatcher can be installed using sapinst, or just by executing sapwebdisp -bootstrap.
On Windows systems I would recommend to perform the installation via sapinst, since the service will be created automatically.
After the installation has been finished, the webdispatcher can be configured to "serve" multiple SAP or non-SAP systems.
Configuration
In this example, the following configuration has been used:
PIP - SAP PI 7.0 ABAP+Java
Message server http port: 8100
Hostname sappi.demo.com
CE2 - SAP CE7.2 Java only
Message server http port 8141
Hostname sapce.demo.com
WD2 - SAP Webdispatcher 7.2
Hostname webdisp.demo.com
ICM http port: 4444
Add the following parameters to the webdispatcher profile:
wdisp/system_0 = SID=PIP, MSHOST=sappi.demo.com, MSPORT=8100
wdisp/system_1 = SID=CE2, MSHOST=sapce.demo.com, MSPORT=8141
icm/HTTP/mod_0 = PREFIX=/,FILE=/sapmnt/WD2/profile/icm_filter.txt
Create the file icm_filter.txt with the following contents:
if %{HTTP_HOST} regimatch wd_sappi.demo.com* SetHeader x-sap-webdisp-target-sid PIP [break] if %{HTTP_HOST} regimatch wd_sapce.demo.com* SetHeader x-sap-webdisp-target-sid CE2 [break]
Restart and test
The webdispatcher has to be restarted in order to activate the changes. After the restart has been executed, you can test the newly implemented functionality.
Execute your url's:
http://wd_sappi.demo.com:4444 -> request goes to PIP
http://wd_sapce.demo.com:4444 -> request goes to CE2
For each system that has been added, a separate entry will be created in the webdispatcher management console.
Related content
For the related content of this functionality, please have a look at: http://help.sap.com/saphelp_nwce72/helpdata/en/03/afe24bfeb7419b9172ffb6e7636926/frameset.htm
12 Comments
Former Member
Hi Mark,
we got problem when trying install SAP Webdispatcher 7.2 (new release). when we first configuration by execute :
sapwebdisp.exe --bootstrap
Hostname of Message Server (rdisp/mshost): sapdev HTTP Port of Message Server (ms/http_port): 8100 Checking connection to message server...OK Unique Instance NumberforSAP Web Dispatcher (SAPSYSTEM): 60 HTTP port numberforSAP Web Dispatcher: 4444 Create configurationfors(mall), m(edium), l(arge) system (default: medium): Profile"sapwebdisp.pfl"generated Authentication file"icmauth.txt"generated Web Administration user is"icmadm"with password"WB6Fs3Gy"Restart sapwebdisp with profile: sapwebdisp.pfl sapwebdisp started withnewpid 2496 Web administration accessible with"http://theresia:4444/sap/wdisp/admin" SAP Web Dispatcher bootstrap ended (rc=0) <--- shutdown immediatebut, when try to start again
sapwebdisp.exe pf=sapwebdisp.pfl, we got this error message
D:\WD72>rslgwr1(16): I cannot get addr of SCSA. SysLog:iE1120110127165348000249600000IC : 0 :SCSA 4096 rslgwr1(16): I cannot get addr of SCSA. SysLog:mIM120110127165348000249600000IC : 0 :SAP Web Dispatcher&theresia&2496& IcmInitStartupicxxrout1914 *** SAP Web Dispatcher shutdown completed (pid: 2496) *** SysLog:mIM220110127165348000249600000IC : 0 :SAP Web Dispatcher&theresia&2496& IcmMainShutdowicxxrout829
can you help me?
thanks
regards
ghochi
Stuart L Banner
Hello,
I have followed your procedure above and it all works perfectly. The problem I now have is that I am using crm_ui_start to logon to the two crm systems. The configuration above gets me to both systems logon screens, but I then get no further. I enter my logon credentials and nothing happens. I see in the web dispatcher admin that it sees both systems and their app servers.
The URL that I use to contact each system is:
http://wd_cq3.<name>.com:8080/sap/crm_logon (crm_logon being an alias to crm_ui_start)
http://wd_ci3.<name>.com:8080/sap/crm_logon
My profile has:
wdisp/system_0 = SID=CQ3, MSHOST=sapcq3d1.<name>.com, MSPORT=8100
wdisp/system_1 = SID=CI3, MSHOST=sapci3d1.<name>.com, MSPORT=8900
icm/HTTP/mod_0 = PREFIX/,FILE=E:\Source\WEBDISPATCHER\CI3100\icm_filter.txt
Contents of icm_filter.txt:
if %{HTTP_HOST} regimatch wd_cq3*
SetHeader x-sap-webdisp-target-sid CQ3 [break]
if %{HTTP_HOST} regimatch wd_ci3*
SetHeader x-sap-webdisp-target-sid CI3 [break]
Am I missing something here as to why I cannot login to any of these systems?
Thanks
Stuart Banner
Tobias Winterhalter
Hi Stuart,
I recommend to first get one system running with Web Dispatcher, then add the second one. Also, you could record the HTTP traffic e.g. with Fiddler2, HttpWatch or the developer console built into the browser (F12). This will help us to see what is going wrong.
Regards,
Tobias
Stuart L Banner
Tobias,
Stupid question but how do I copy text into this message?
I would like to cut and paste my entire profile here so that you can see if I have any glaring mistakes!
Thanks
Stuart
Stuart L Banner
Tobias,
I used Fiddler and got the following:
Cookies
!!!WARNING!!! Server hostname contains an underscore and this response sets a cookie. Internet Explorer does not permit cookies to be set on hostnames containing an underscore
Respose sent 54 btes of Cookie data:
Set-Cookie: sap-usercontxt=sap=language=EN&sap-client=100; path=/
The response did not contain a P3P header.
Cache
!!!WARNING!!!: IE will only respect a Pragma: no-cache Response Header on a HTTPS response. Using this value on a HTTP response has no effect.
HTTP/1.1 Cache-Control Header is present: no-cache. This response MUST NOT be reused without successful revalidation with the origin server.
I am going to have my server team change the hostname aliases from wd_cq3/wd_ci3 to wdcq3/wdci3 and see what happens.
Thanks
Stuart
Tobias Winterhalter
Hi Stuart,
The underscore is indeed an invalid character for the hostname. SAP note 611361 has more info about valid hostnames for SAP servers.
Regards,
Tobias
Former Member
Hi Tobias,
I have managed to get passed the logon screen by using an alias without an underscore. Now my next problem is that the screen I am expecting will not render. Fiddler shows the following:
GET http://cq3wd.<name>.com:8080/SAP(====)/BC/BSP/SAP/thtml_scripts/events.is HTTP/1.1
Accept:*/*
Referer: http://cq3wd.<name>.com:8080/sap/crm_logon/default.htm
When I click on the first link I get the 500 Internal Server Error with 'No target SAP system for request'
If this is what is happening, then it looks to me like a stickiness issue with the cookie. It gets passed the initial login and forgets where it supposed to go to render the screen.
Thanks
Stuart
Tobias Winterhalter
Hi Stuart,
I assume you adjusted your filter rules to the new hostnames. I don't think it is a stickiness issue. Web Dispatcher has to decide for each and every request to which system to forward it. In this case, it seems Web Dispatcher wasn't able to determine the target system.
You can always raise the Web Dispatcher trace level to 2, then reproduce the issue, and check what is happening in dev_webdisp. Start by searching for the request path (e.g. events.js), then see how WD decided where to send it (or not).
Regards,
Tobias
Former Member
Hi,
It's really good post!
But.... is there any way to use one DNS name for webdispatcher without virtual hosts (system1.webdisp.com, system2.webdisp.com etc) ?
I want to access my systems via webdisp.company.com/SID/..... where SID is SAP System ID (or any prefix)
I have made url modification rules for webdispatcher side that removes SID from URL and redirect it to correct system, but I need to configure this prefix in every my system.
I mean that the default_host in every ABAP system must have /SID/ instead of / path. And JAVA systems must have 'default server root' /SID/irj instead of /irj/
Can anybody help me?
A S
Hi,
How would the Multiple HTTPS urls be handled in this case.
I am working on a scenario where all the HTTPS URL will be using the same port 44300.
The SSL termination would take place on the Web dispatcher. The connectivity between Web Dispatcher and backend would be HTTP.
Can you let me know if such a scenario is possible and if yes then how could it be accomplished.
The below URL are for the Users accessing the servers through Web Dispatcher
https://a.b.com:44300
https://b.b.com:44300
https://c.b.com:44300
https://d.b.com:44300
wdisp/system_0 = SID=CR1, MSHOST=c1.y.com, MSPORT=8100
wdisp/system_1 = SID=HM1, MSHOST=h1.y.com, MSPORT=8100
wdisp/system_0 = SID=CR2, MSHOST=c2.y.com, MSPORT=8100
wdisp/system_1 = SID=HM2, MSHOST=h2.y.com, MSPORT=8100
icm/HTTP/mod_0 = PREFIX=/,FILE=/sapmnt/WD1/profile/icm_filter.txt
#### icm_filter.txt ####################
if %{HTTPS_HOST} regimatch "a.b.com"
SetHeader x-sap-webdisp-target-sid CR1
if %{HTTPS_HOST} regimatch "b.b.com"
SetHeader x-sap-webdisp-target-sid HM1
if %{HTTPS_HOST} regimatch "c.b.com"
SetHeader x-sap-webdisp-target-sid CR2
if %{HTTPS_HOST} regimatch "d.b.com"
SetHeader x-sap-webdisp-target-sid HM2
My queries are about the below
1) is the above config possible?
2) Is HTTPS_HOST a valid check, i know we can use HTTP_HOST in icm_filter rule file. Can HTTPS_HOST too be used?
3) If webdispatcher is configured for SSL termination , then do i need HTTPS_HOST in the ICM Filter or can i continue with the same HTTP entry that is existing for the HTTP urls
The result should be
https://a.b.com:44300 --> http://c1.y.com:8100
https://b.b.com:44300 --> http://h1.y.com:8100
https://c.b.com:44300 --> http://c2.y.com:8100
https://d.b.com:44300 --> http://h2.y.com:8100
Do let me know if anyone can help with the required info for the above configuration.
Thanks
Shaik Arshad
Tobias Winterhalter
Hi Shaik,
You can use the new sub parameter SRCVHOST for your purpose. Please review SAP Note 2010948. It makes no difference whether you use HTTP or HTTPS.
Best,
Tobias
Former Member
We are currently working to consolidate our SAP WebDispatcher landscape to bring all of our Internet facing content under one domain name. We currently have 5 domain names all through separate SAP WebDispatchers.
Content that exists in underlying SAP system is delivered by iViews on the Enterprise Portal. iViews reference systems in the Enterprise Portal system landscape such as SAP_SRM and SAP_CRM which have an ICM parameter to launch the content from a new domain name.
For example;
The portal domain name is main.example.com.au, the ICM settings for system SAP_SRM is main3.example.com.au. When a user clicks on an iView pointing to SRM the browser will fetch content from main3.example.com.au. The content is typically delivered within an iframe on the portal
Can someone advise what the best approach is to migrate all of the content to a single domain name.
Please note that in reviewing our existing WebDispatcher hardening files we are likely to encounter issues with overlapping URL path between systems; for example the path /sap/public/bc/ur/ is valid on both SRM and CRM
In our initial testing we have setup multiple systems on the WebDispatcher and created some URL transformation rules. Our intention was to modify the Enterprise Portal system landscape for SAP_SRM and SAP_CRM ICM Host settings to append a unique string at the start of each URL and then perform action on this URL in the WebDispatcher similar to the below;
1. Configure the SAP_SRM ICM host parameter to main.example.com.au/SuppRelMan <performed on the Enterprise Portal>
2. Set header x-sap-webdisp-target-sid SRB based in the inspected URL containing SuppRelMan <performed by the SAP WebDispatcher>
3. Strip /SuppRelMan from the URL (as we are adding SuppRelMan from the ICM config we need to remove it again as it is not a valid path in the SRM system) <performed by the SAP WebDispatcher>
What we have noticed is that only the first URL request launched from the iView contains the appended string, all subsequent requests do not contain the string so they are passed to the Enterprise Portal. As paths such as /sap/public/bc/ur/ are not valid on the Enterprise Portal the request fails. I understand this maybe a portal related question but first thought to seek out guidance if our approach is recomended.
Thanks,
Mathew Vesely