Register Login

Service 'xyz' unknown; error in getservbyname/getaddrinfo

Updated May 18, 2018

A service name is unknown, in this example sapmsOSS. The trace file contains the following entry:
***LOG Q0I=> NiPGetServByName: service 'sapmsOSS' not found: getservbyname [niuxi.c 1669]

or
***LOG Q0I=> NiPGetServByName: 'sapmsOSS' not found: getaddrinfo [niuxi.c 1617]
*** ERROR => GwIAsyncConn: GwBufConnect to oss001 / sapmsOSS failed (rc=NIESERV_UNKNOWN) [gwxx.c       1113]

or
****************************************************************
*
*  LOCATION    SAP-Gateway on host ld0168 / sapgw53
*  ERROR       service 'sapmsOSS' unknown
*
*  TIME        Wed Jan 11 13:22:35 2006
*  RELEASE     710
*  COMPONENT   NI (network interface)
*  VERSION     39
*  RC          -3
*  MODULE      nixxhsl.cpp
*  LINE        643
*  DETAIL      NiHsLGetServNo: service name cached as unknown
*  COUNTER     293
*
****************************************************************

Or the following SAP GUI error message occurs:
service 'sapmsOSS' unknown
 

A lookup for the specified service name is not possible for the corresponding port number. In most cases the error occurs during the connection to a server (for example, message server, dispatcher, gateway, SAProuter , and so on) in which a service name is specified instead of a port number. Since the service name is unknown, the connection cannot be established.

You can use the 'niping' program to reproduce the error. Call the program as follows:
niping -v -S <service name>


For sapmsOSS, the program displays the following:
:/> niping -v -S sapmsOSS
...
Servicename/Serviceport verification:
=======================================
Lookup of service: sapmsOSS                        (NiServToNo)
Wed Jan 11 13:44:35 2006
***LOG Q0I=> NiPGetServByName: service 'sapmsOS2' not found: getservbyname [niuxi.c 1669]
    --> **** FAILED ****
...


In case of a successful lookup (in this example, port number 3616 is assigned to the sapmsOSS service name), the program displays the following:
:/> niping -v -S sapmsOSS
...
Servicename/Serviceport verification:
=======================================
Lookup of service: sapmsOSS                        (NiServToNo)
    --> Number: 3616
...


You can choose any assignment of a service name to a port number. The default values for the SAP service names are usually within the following port number ranges:

Dispatcher:
sapdp<instance number> range from 3200 to 3298

Gateway:
sapgw<instance number> range from 3300 to 3398

Message server:
sapms<SID> range from 3600 to 3698

The port number for the service name must be published on the corresponding computer or in the network. You can add the required entry in the local file or in a central service (for example, NIS). To check whether a lookup for the corresponding service name is possible on the host, use the 'niping' program.

1) Unix
You can configure the operating system as to check whether the lookup for a service name is performed locally and/or by means of a global service. To do this, some platforms use the '/etc/nsswitch. conf' configuration file. Information is also available on 'man services'.
You can store service names locally in the '/etc/services' file with the following format:
<service name>   <service number>/<protocol>   [<service aliases> ...]
For the SAP service names, one entry for the TCP protocol is sufficient. Example if the 'sapmsOss' service name corresponds to port number 3616:
sapmsOSS       3616/tcp
You can use the following command to check whether a service name is stored in the NIS:
:/> ypcat services | grep <service name>


2) Microsoft Windows
In Microsoft Windows, the service names are stored locally in the 'C:WINDOWSdriversetcservices' file. The format is identical to the one of UNIX platforms:
<service name>   <service number>/<protocol>   [<service aliases> ...]


×