https://launchpad.support.sap.com/#/notes/1845121
当SAP系统中同时启用WD(装有webdispatcher)和ICM时,经常发生端口已经使用,请使用这个方法解决。
Symptom
SAP Message Server, Dispatcher, Gateway, WebDispatcher, ICM etc. does not start.
The corresponding traces dev_ms, dev_disp, dev_rd, dev_webdisp, dev_icm etc. write similar messages as shown below:
Windows:
***LOG Q0I=> NiIBindSocket: bind (10013: WSAEACCES: Permission denied)
[Thr 8548] *** ERROR => NiIBindSocket: SiBind failed for hdl 1 / sock 9
(SI_EPORT_INUSE/10013; I4; ST; 0.0.0.0:3600)
*** ERROR => MsSCommInit: NiBufListen(3600) (rc=NIESERV_USED)
Linux:
NiIBindSocket: bind (98: Address already in use)
*** ERROR => NiIBindSocket: SiBind failed for hdl 1 / sock 9
(SI_EPORT_INUSE/98; I4; ST; 0.0.0.0:3600)
*** ERROR => MsSCommInit: NiBufListen(3600) (rc=NIESERV_USED)
AIX:
NiIBindSocket: bind (67: Address already in use)
*** ERROR => NiIBindSocket: SiBind failed for hdl 1 / sock 9
(SI_EPORT_INUSE/67; I4; ST; 0.0.0.0:3600)
*** ERROR => MsSCommInit: NiBufListen(3600) (rc=NIESERV_USED)
HP-UX:
NiIBindSocket: bind (226: Address already in use)
*** ERROR => NiIBindSocket: SiBind failed for hdl 1 / sock 9
(SI_EPORT_INUSE/226; I4; ST; 0.0.0.0:3600)
*** ERROR => MsSCommInit: NiBufListen(3600) (rc=NIESERV_USED)
Solaris:
NiIBindSocket: bind (125: Address already in use)
*** ERROR => NiIBindSocket: SiBind failed for hdl 1 / sock 9
(SI_EPORT_INUSE/125; I4; ST; 0.0.0.0:3600)
*** ERROR => MsSCommInit: NiBufListen(3600) (rc=NIESERV_USED)
SAP Hana Database cannot be started. The Daemon trace contains lines like:
[115220]{-1} Network TrexHDB DaemonDaemon.cpp(02186) : cannot bind socket to 127.0.0.1:12345: Address already in use (98)
[115220]{-1} Network TrexDaemon.cpp(02192) : cannot listen on socket to 127.0.0.1:12345: Address already in use (98)
Cause
In the case of the following entry:
(SI_EPORT_INUSE/10013; I4; ST; 0.0.0.0:3600)
the highlighted port 3600 is used by some process already.
Resolution
Use the following commands corresponding to your OS to find the PID of the process that is already listening on the port:
Windows: netstat -aon | findstr <port number>
Linux:
netstat -nap | grep <port number>
ss -ntlp | grep <port number>
Linux/Unix: lsof -n -P -i :<port number>
REMARK: the tool lsof (list of open files) might not be installed for your OS. You can download and install the tool from your OS provider.
Based on the PID you can find the process in the Task Manager (Windows) or in the output of the ps -ef command (Linux/Unix).
Keywords
NiPBind:, icmbnd, ListenerThread:Init: unable to listen, IcmBindService: NiBuf2Listen failed, MsHttpCommInit, MsHttpPortBind:, DpCommInit: NiBufListen, GwInitService: NiDgBind, Error address in use, , rc=98: Address already in use, bind failed, cannot bind to handle