【发布时间】:2016-09-01 13:27:07
【问题描述】:
我们正面临 JCO SAP 服务器的问题。
问题:我们有一个正在运行的 JCO SAP 服务器。假设如果系统脱离网络,运行 JCO SAP 服务器开始抛出错误。如果系统在 30-45 分钟内恢复到网络中,则启动的 JCO SAP 服务器恢复其功能。但是如果系统在很长一段时间(比如 1 或 2 小时)后进入网络,则 JCO SAP 服务器不会恢复其功能。
让我们知道有没有办法增加重试次数和重试间隔?或者一种配置无限重试的方法。
方法:我们尝试通过在服务器实例上调用 stop 方法来重新启动 JCO SAP 服务器,然后我们在同一服务器实例上调用 start 方法,但在我们重新启动 JVM 之前,JCO SAP 服务器仍然没有收到从 SAP 服务器发送的 IDOC。
预期:当系统在很长一段时间后进入网络时,在重新启动 JCO SAP 服务器后(调用 stop() > release() > start() 方法)应该可以正常工作。
SAP Api 是否与 JVM 绑定或在 JVM 级别缓存某些内容?
请让我们知道我们需要做什么?因此,启动的 JCO SAP 服务器即使在长时间断网后也能恢复其功能。
如果您需要更多信息,请告诉我。
运行 JCO SAP 版本:SAPJCO3.jar (3.0.14)
SAP JCO 服务器断网时出错
2016-09-01 11:34:08,014 ERROR [JCoServerThread-2] SAPServer com.adeptia.indigo.services.sap.server.ErrorListener.serverExceptionOccurred(ErrorListener.java:46) - ||||administrators|||||admin|Error occured on ADEPTIATEST connection 4-/H/155.56.59.11/H/cpcF501|sapgw05|ADEPTIATEST[CPIC-CALL: SAP_CMACCPTP3 on convId:
ERROR connection to partner '155.56.59.11:3299' broken
TIME Thu Sep 01 11:34:07 2016
RELEASE 720
COMPONENT NI (network interface)
VERSION 40
RC -6
MODULE nixxi.cpp
LINE 5087
DETAIL NiIRead: P=155.56.59.11:3299; L=192.168.1.73:51413
SYSTEM CALL recv
ERRNO 10054
ERRNO TEXT WSAECONNRESET: Connection reset by peer
COUNTER 1
]|192.168.1.73||null
com.sap.conn.jco.JCoException: (102) JCO_ERROR_COMMUNICATION: CPIC-CALL: SAP_CMACCPTP3 on convId:
ERROR connection to partner '155.56.59.11:3299' broken
TIME Thu Sep 01 11:34:07 2016
RELEASE 720
COMPONENT NI (network interface)
VERSION 40
RC -6
MODULE nixxi.cpp
LINE 5087
DETAIL NiIRead: P=155.56.59.11:3299; L=192.168.1.73:51413
SYSTEM CALL recv
ERRNO 10054
ERRNO TEXT WSAECONNRESET: Connection reset by peer
COUNTER 1
at com.sap.conn.jco.rt.MiddlewareJavaRfc.generateJCoException(MiddlewareJavaRfc.java:681)
at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.listen(MiddlewareJavaRfc.java:2269)
at com.sap.conn.jco.rt.DefaultServerWorker.dispatch(DefaultServerWorker.java:284)
at com.sap.conn.jco.rt.DefaultServerWorker.loop(DefaultServerWorker.java:369)
at com.sap.conn.jco.rt.DefaultServerWorker.run(DefaultServerWorker.java:245)
at java.lang.Thread.run(Thread.java:745)
Caused by: RfcException: [null]
message: CPIC-CALL: SAP_CMACCPTP3 on convId:
ERROR connection to partner '155.56.59.11:3299' broken
TIME Thu Sep 01 11:34:07 2016
RELEASE 720
COMPONENT NI (network interface)
VERSION 40
RC -6
MODULE nixxi.cpp
LINE 5087
DETAIL NiIRead: P=155.56.59.11:3299; L=192.168.1.73:51413
SYSTEM CALL recv
ERRNO 10054
ERRNO TEXT WSAECONNRESET: Connection reset by peer
COUNTER 1
Return code: RFC_FAILURE(1)
error group: 102
key: RFC_ERROR_COMMUNICATION
at com.sap.conn.rfc.engine.RfcIoOpenCntl.RfcListen(RfcIoOpenCntl.java:2315)
at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.listen(MiddlewareJavaRfc.java:2229)
... 4 more
Caused by:
>RfcIoException:
message: CPIC-CALL: SAP_CMACCPTP3 on convId:
ERROR connection to partner '155.56.59.11:3299' broken
TIME Thu Sep 01 11:34:07 2016
RELEASE 720
COMPONENT NI (network interface)
VERSION 40
RC -6
MODULE nixxi.cpp
LINE 5087
DETAIL NiIRead: P=155.56.59.11:3299; L=192.168.1.73:51413
SYSTEM CALL recv
ERRNO 10054
ERRNO TEXT WSAECONNRESET: Connection reset by peer
COUNTER 1
Return code: RFCIO_ERROR_SYSERROR(5)<
at com.sap.conn.rfc.engine.RfcIoOpenCntl.ab_rfclisten(RfcIoOpenCntl.java:1392)
at com.sap.conn.rfc.engine.RfcIoOpenCntl.RfcListen(RfcIoOpenCntl.java:2311)
... 5 more
【问题讨论】:
-
您已经使用 JCo 实现了一个 RFC 服务器并通过您的服务接收 Idocs?当 JCo 服务重新连接到 SAP 服务器时,您希望它接收 重新连接后创建的 idocs,还是希望接收 JCo 服务未连接时创建的 idocs?如果您在“断开连接”期间缺少 IDoc,请检查事务 SM58 以获取仍在队列中的事务 RFC。您可以手动重试这些,也可以查看是否有报告。我不知道你是否可以触发 JCo 的重试。
-
是的,我们正在使用带有 JCo 的 RFC 服务器。我们希望它接收重新连接后创建的 idocs(如果网络中断超过 1 小时,则无需重新启动我们的 JVM)。即使在 JCO 服务器对象上调用 stop() > release() > start() 也不起作用。