【问题标题】:JCO Idoc server cannot receive messages due to port issue由于端口问题,JCO Idoc 服务器无法接收消息
【发布时间】:2017-01-12 11:10:40
【问题描述】:

我有一个使用 JCo 3 构建的基于 java 的 idoc 侦听服务器。当我启动它并从 sap 系统发送一个 Idoc 时,它给了我一个异常。

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

正如它所说,我认为这是由于消息服务器不可用并登录到 sap 机器并使用 netstat 检查打开的端口。

端口 3600 未在侦听,但报告端口 7200 已被 msg_server.exe 打开。我已将我的 jco 服务器端机器的 /etc/services 文件设置为 sapmsNSP 3600/tcp 但即使我将其更改为 7200 它也会给我异常说内部错误

【问题讨论】:

    标签: java sap jco idoc sapjco3


    【解决方案1】:

    错误消息显示主机 192.168.56.101 上没有正在运行的进程侦听端口 3600。这意味着 SAP 消息服务器进程正在侦听不同的端口,或者根本没有运行。

    如果您可以使用 SAP GUI 对 ABAP 系统 NSP 进行组登录,则应该正确配置您的服务文件。顺便说一句,SAP 消息服务器进程在 Windows 上通常被命名为 msg_server.exe - 而不是 message_server.exe。如果您更改了服务文件,您至少应该在显示修改后的端口号的 DETAIL 错误消息部分收到不同的错误消息。否则您更改服务文件失败(未保存?最后一行后没有回车?)或者更改服务文件后您没有重新启动 JCo 服务器程序。

    【讨论】:

    • 已编辑:应该是“msg_server.exe”。我的服务文件很好。我如何通过将 r rdisp/msserv = 3 添加到 C:\usr\sap\NSP\SYS\profile\NSP_XXXXXX00_hostnam 文件来解决这个问题。我不知道为什么。
    • rdisp/msserv 指定 SAP 系统端的消息服务器服务名称。恕我直言,它应该设置为值sapmsNSP。我怀疑您的更改与之前的错误消息有关。也许值 '3' 被忽略了,而是使用了一些默认值,这导致现在使用端口 3600。请检查 SAP 系统主机上的服务文件中为 sapmsNSP 配置的端口。
    猜你喜欢
    • 2017-04-28
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多