【问题标题】:Facing issue with SAP JCO server connectivity when system out of network系统断网时面临 SAP JCO 服务器连接问题
【发布时间】: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() 也不起作用。

标签: java sap


【解决方案1】:

在停止 JCO 服务器实例时执行以下操作应该可以正常工作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    相关资源
    最近更新 更多