Documente Academic
Documente Profesional
Documente Cultură
Introduction
With Windows 98 Microsoft has started supporting Quality of Service (QoS) in the Winsock 2 API. In
Windows 2000 the QoS support has been further enhanced. In addition to quantitative QoS now a so-called
qualitative QoS is available. This enables applications to use QoS without directly requesting a specific
bandwidth or priority. The application only needs to identify its network traffic by using “symbolic names”
(represented by an AppName and PolicyLocator). This enables customers to adjust the QoS to their specific
needs by mapping AppName and PolicyLocator to a specific QoS. The mapping is handled by the underlying
OS (Windows 2000) and needs to be supported by the network equipment. The SAP application is not
involved in this task.
The AppName is always set to "SAP R/3". In future, more detailed PolicyLocators may be implemented to
identify the network traffic more precisely (e.g. type of R/3 work process or transaction code). Nevertheless
this will require changes in higher levels of the R/3 application.
Page 1
Enabling QoS
SAP applications running on Windows 2000 only set the PolicyLocator string. Nevertheless to make use of
this further actions are required. The network components must meet certain demands, a policy data store
must be installed and the SAP PolicyLocator strings must be installed in the policy data store. SAP is not
involved in this process. Please refer to Microsoft and your network equipment vendor. Currently there is no
simple guideline available from Microsoft. There are however some basic articles that may help you to
understand the overall architecture:
• “A Short Overview of QoS Mechanisms and Their Interoperation”:
http://www.microsoft.com/TechNet/win2000/qosmech.asp
• “The MS QoS Components”: http://www.microsoft.com/TechNet/win2000/qoscomp.asp
• “Specification of Incremental Functionality Supported by Third Party Policy Enforcement Point and
Policy Decision Points”:
http://www.microsoft.com/TechNet/win2000/win2ksrv/technote/vendspec.asp
• “An Overview of QoS”: http://www.microsoft.com/TechNet/win2000/win2ksrv/technote/qosover.asp
SetQoS succeeded:
QoS Provider: RSVP TCP Service Provider
AppName: SAP R/3
PolicyLocator: APP=SAP-R3,VER=45B,SAPP=disp+work.exe
Failures are logged as follows:
Setting the environment variable QOSDISABLE disables the SAP QoS support. With 4.5B patchlevel
601 and 4.6D patchlevel 386 and following releases QoS support is disabled by default.
The Windows 2000 performance monitor (perfmon) can be used to trace various QoS parameters (see
performance objects “ACS/RSVP Interfaces” and “ACS/RSVP Service”).
Known Problems
Unfortunately the Windows 2000 QoS implementation has some problems and limitation, which are not fixed
yet (including ServicePack 1). A workaround for all these problems is to disable SAP QoS support by setting
the environment variable QOSDISABLE (or using 4.5B patchlevel 601/ 4.6D patchlevel 386) .
• On some system the Windows 2000 “QoS RSVP” service is not starting. SAP applications will get
error code 10091 (“WSASYSNOTREADY: Network subsystem is unavailable”). To fix the problem
contact our Microsoft support. Please note that the RSVP service shuts itself down, if no QoS
enabled application is using it for 3 minutes. It should be started automatically when an application
starts using QoS.
Page 2
• The “QoS RSVP” services write a warning message “QoS RSVP has failed to find any interfaces
with traffic control enabled. Install QoS traffic control services via network and dial-up connections”
into the system event log each time it is started. Raise conditions can occur if the service is started
again just after it was shut down. This can fill up the event log. Microsoft already has a hot fix for this
problem (Knowledge Base article Q278920). To get rid of the warning message you can install a
“Qos Packet Scheduler” network service, nevertheless this may decrease network performance.
• In some situations (especially on single processor systems) you will notice 100% CPU utilization
making your system almost unusable. This is caused by a bug in rsvpsp.dll. Microsoft already has a
hot fix for this problem (Knowledge Base article Q263207). The newer QoS hot fix (Knowledge Base
article Q271989) also includes this fix.
• The Winsock2 function WSADuplicateSocket does not work on QoS sockets. Microsoft already has
a hot fix for this problem (Knowledge Base article Q271989). The niping self test (niping –t) will
report this error:
***LOG Q0I=> NiPSendSock: WSADuplicateSocket (10022: WSAEINVAL: Invalid argument )
[ninti.c 1776]
• The RSVP service can only handle a limited number of QoS enabled processes, since it is using
WaitForMultipleObject for communication with the QoS processes. WaitForMultipleObject can only
handle 64 events. The service is using 6 events internally and requires 2 events for each QoS
process. So it can only handle (64-6)/2 = 29 QoS processes. If for example you are using a QoS
enabled SAPGUI on Windows 2000, each SAPGUI creates 2 processes (front.exe and sapgui.exe)
th
both using a QoS socket. So only 14 SAPGUIs can be started. The 15 SAPGUI will get error code
11015 (“WSA_QOS_GENERIC_ERROR: General QOS error”). Microsoft is working on fixing this
problem. It is planed to fix it in ServicePack3 for Windows 2000.
• Using QoS creates some additional RSVP messages. Typically firewalls do not allow these
packages to pass through. This will generate ICMP error messages “Destination address is
unknown”. This is a design feature.
• The Window 98 QoS provider cannot be used by SAP. In 45B patchlevel 254 QoS has been enabled
for all platforms if a QoS provider is found. This results in the following error messages:
*handle 1 got socket 132*** ERROR => SetQoS failed:
QoS Provider: MS.w95.spi.rsvptcp
PolicyLocator: APP=SAP-R3,VER=45B,SAPP=SAPGUI.EXE
(11014) [ninti.c 0150]
Supported Platforms
Currently Windows 2000 is the only supported platform for qualitative QoS. In Windows 2000 RC2 (build
2128) the QoS provider has errors. Error messages are displayed in the SAP developer traces like the one
above. In build 2132 this has been fixed. The Windows 2000 QoS Provider is named “RSVP TCP Service
Provider”. On Windows 98 a QoS Provider named “MS.w95.spi.rsvptcp” is available, but it does not support
qualitative QoS and does not include fixes required for SAP R/3 to work correctly. So QoS has been enabled
exclusively for Windows NT version 5.0 or higher.
Page 3
Enable Quality-of-Service Feature for the SAP NI layer
Since the default use of QoS has changed, it is necessary to set an environment variable QOSENABLE in
the system or a user environment for all Windows 2000 client and server machines to enable QoS (4.5B
patchlevel 601 / 4.6D patchlevel 386 and subsequent releases). This can easily be done by a small MSI
installation file and a Windows 2000 group policy object.
References
Winsock2 QoS API (GQoS spec):
ftp://ftp.microsoft.com/bussys/winsock/winsock2
IETF drafts:
http://www.ietf.org/internet-drafts/draft-ietf-issll-diffserv-rsvp-02.txt
http://search.ietf.org/internet-drafts/draft-ietf-issll-dclass-00.txt
http://search.ietf.org/internet-drafts/draft-ietf-issll-qualservice-00.txt
http://search.ietf.org/internet-drafts/draft-bernet-appid-00.txt
SAP OSS:
Microsoft QoS support (note 180940)
Page 4