我有一个基于 java 的 IDoc 监听服务器,它是使用 JCo 3 构建的。当我启动它并从 sap 系统发送 IDoc 时,它在下面的跟踪中给了我一个异常。
正如它所说,我认为这是由于消息服务器不可用并登录到SAP机器并使用netstat
检查打开的端口。
3600 未侦听,但端口 7200 报告由 msg_server.exe
打开。我已经将我的 JCo 服务器端机器的 /etc/services
文件设置为 sapmsNSP 3600/tcp
但即使我将其更改为 7200,它也给了我异常说内部错误。
跟踪:
com.sap.conn.idoc.IDocRuntimeException: Failed to resolve repository reference @MYDESTINATION at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServer$IDocRepositoryMapBox$IDocRepositoryReference.getRepository(DefaultJCoIDocServer.java:245) at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServer$IDocRepositoryMapBox.getRepository(DefaultJCoIDocServer.java:397) at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServer.getIDocRepository(DefaultJCoIDocServer.java:128) at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServerWorker$IDocDispatcher.createIDocDocumentListArray(DefaultJCoIDocServerWorker.java:445) at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServerWorker$IDocDispatcher.handleRequest(DefaultJCoIDocServerWorker.java:209) at com.sap.conn.jco.rt.DefaultServerWorker.dispatchRequest(DefaultServerWorker.java:148) at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.dispatchRequest(MiddlewareJavaRfc.java:3680) at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.executePlayback(MiddlewareJavaRfc.java:3158) at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.playbackTRfc(MiddlewareJavaRfc.java:2981) at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.handletRfcRequest(MiddlewareJavaRfc.java:2875) at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.listen(MiddlewareJavaRfc.java:2674) at com.sap.conn.jco.rt.DefaultServerWorker.dispatch(DefaultServerWorker.java:275) at com.sap.conn.jco.rt.DefaultServerWorker.loop(DefaultServerWorker.java:356) at com.sap.conn.jco.rt.DefaultServerWorker.run(DefaultServerWorker.java:232) at java.lang.Thread.run(Thread.java:745) Caused by: com.sap.conn.jco.JCoException: (102) JCO_ERROR_COMMUNICATION: Connect to message server host failed Connection parameters: TYPE=B DEST=MYDESTINATION MSHOST=192.168.56.101 R3NAME=NSP GROUP=PUBLIC PCS=1 ERROR partner '192.168.56.101:sapmsNSP' not reached TIME Thu Jan 12 16:19:21 2017 RELEASE 721 COMPONENT NI (network interface) VERSION 40 RC -10 MODULE nixxi.cpp LINE 3283 DETAIL NiPConnect2: 192.168.56.101:3600 SYSTEM CALL connect ERRNO 61 ERRNO TEXT Connection refused COUNTER 1
错误消息指出主机 192.168.56.101 上没有正在运行的进程侦听端口 3600。这意味着 SAP 消息服务器进程正在侦听不同的端口,或者它根本没有运行。
如果可以使用 SAP GUI 对 ABAP 系统 NSP 进行组登录,则应正确配置服务文件。顺便说一下,SAP 消息服务器进程在 Windows 上通常被命名为 msg_server.exe - 而不是message_server.exe。如果您更改了服务文件,则至少应该在DETAIL错误消息部分收到一条不同的错误消息,显示修改后的端口号。否则,您未能更改服务文件(未保存?最后一行后没有回车符?),或者在更改服务文件后未重新启动JCo服务器程序。