当系统脱离网络时面临 SAP JCO 服务器连接问题

Facing issue with SAP JCO server connectivity when system out of network

我们遇到了 JCO SAP 服务器的问题。

问题:我们有一个 运行 JCO SAP 服务器。假设如果系统脱离网络,运行 JCO SAP 服务器开始抛出错误。如果系统在 30-45 分钟内返回网络,则启动的 JCO SAP 服务器将恢复其功能。但是,如果系统在很长时间(比如 1 或 2 小时)后进入网络,则 JCO SAP 服务器不会恢复其功能。

请问有什么方法可以增加重试次数和重试间隔吗?或者配置无限重试的方法。

方法:我们尝试通过在服务器实例上调用停止方法来重新启动 JCO SAP 服务器,然后在同一服务器实例上调用启动方法,但在我们重新启动 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 服务器实例时执行以下操作时,它应该可以正常工作:

  1. ServerDataEventListener 实例中删除对您的服务器的引用。您可以从注册的 ServerDataProvider 对象中检索 ServerDataEventListener 实例的引用。
  2. DestinationDataEventListener 实例中删除对您目的地的引用。您可以从注册的 DestinationDataProvider 对象中检索 DestinationDataEventListener 实例的引用。